奇妙なことに、私のコンポーネント全体が間違ったボタンをクリックして送信し続けます。フォームが間違ったボタンをクリックして反応します
レイアウト:
B Component
はComponent A
の内側にあります。 A Component
にはフォームがあります。 B Component
がフォームの送信をトリガーし、理由がわかりません。コンポーネントのリターン機能で
:
<form action... method...>
<BComponent />
<button type="submit">Submit</button>
</form>
Bコンポーネント:
...
_removeFile: function(num){
// issue if function is empty
},
_fileRender: function(){
var files = this.state.fileDetails.map(function(f, x) {
return(
<div key={x}>
<div className="">
<button onClick={this._removeFile.bind(this, x)}>Remove</button>
</div>
</div>
)
}.bind(this));
return(<div>{files}</div>)
},
render: function(){
return(<div>{this._fileRender()}</div>)
}
...
私は削除ボタンをクリックしたときので、フォームを送信します。どうして?そのボタンはデータを_removeFile()
に渡します。その関数が空であるかどうかにかかわらず、それはまだ送信されます。 e.preventDefault()
は何もしません。この段階での私の知識は限られているので、愚かな間違いがあればそれを許してください。
最悪の場合、Component A
の送信ボタンをonClick()
に入れることです。
あなたはそれはたくさんのコンポーネントのコード –
を提供することができます。私は同じエラーを得るためにそれをスリムにすることができるかどうかがわかります。私はちょっと返信します。ありがとう – Sylar
私は今あなたのコードをテストしています。私はちょっと返信します。 –