내가 시도한 것은 Redux-Form
이있는 양식의 값을 event.preventDefault()를 사용하여 handleSubmit
으로 전달하므로이 양식을 제출해도 URL이 변경되지 않습니다.Redux - 제출 핸들러에서 양식 값을 가져 와서 event.preventDefault()를 호출하는 방법
react-router
일 가능성이 큽니다. 내가 react-router
을 사용하고
//form
class SampleForm extends React.Component {
constructor(props) {
super(props);
}
render() {
return (
<div>
<form onSubmit={this.props.handleSubmit}>
<Field name="body" component="textarea" />
<button type="submit" className="btn">Save</button>
</form>
</div>
);
}
}
//container...
class Container extends React.Component {
handleSubmit(event) {
event.preventDefault();
//How can I get the values from SampleForm?
}
render() {
return (
<div>
<SampleForm handleSubmit={this.handleSubmit}/>
</div>
);
}
}
여기 ... 내 시도의 발췌입니다. 이 때문에 양식을 제출하면 제출 된 값으로 URL이 업데이트됩니다.
(내가react-router
를 사용하지 않는 한, 이런 일이 발생하지 않았다 - 나는 단순히
handleSubmit()
에서 값을 얻을 수 있습니다.)
어떤 조언을 이해할 수있을 것이다.
그것은 당신이 코드의 일부 게시하는 것을 잊었다처럼 보인다 - 예를 양식을 redux 형식으로 래핑하는 방법. 이걸 추가 할 수 있을까요? 또한 제출 방법을 어떻게 트리거합니까? 버튼을 클릭하거나 Enter를 누르십니까? –
흠, 그건 이상합니다. React-router는 URL 변경을 일으키지 않으며, 원격 서버로 전달되는 대신 (즉 기본 양식 작업) 요청을 처리합니다. 'preventDefault()'는 처음부터 요청이 시작되는 것을 차단해야하므로 누가 요청을 처리했는지 누가 중요하지 않아야합니다. – Jaxx
필자는 Field 구성 요소를 사용하여 만 본다. 'redux-form'을 어디에서 사용하고 있습니까? 또한'handleSubmit' 함수는'onSubmit' prop를 사용하여 Redux-form 컴포넌트로 전달됩니다. –