私が試したことは、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
私はフィールドコンポーネントを使用してあなたを見るだけです。あなたはどこで 'redux-form'を使っていますか?また、 'handleSubmit'関数は' onSubmit' propを使ってRedux-formコンポーネントに渡されます。これはあなたのやり方ではありません –