次の問題があります。私はModal
と呼ばれる子コンポーネントを持っていて、それはブートストラップボタンとポップアップで構成されています。 Modal
は、renderPosts
というレンダリングコンポーネント内に表示されます。子要素がバインドされていない
Component.js
deleteThis(id){
console.log("THE ID IS", id);
}
renderPosts(post) {
return (
<tr key={post.id}>
<td className="col-md-3"> {post.id}</td>
<td onClick = {this.deleteThis.bind(this, post.id)}>CLICK HERE</td>
<td>
<Modal
modalId="deletepost"
className="btn btn-danger"
onClick={this.deleteThis.bind(this,post.id)} />
</td>
</tr>
);
}
render() {
return (
<div>
<div className="row">
<div className="col-lg-12">
<div>
<table className='table table-striped header-fixed'>
<thead>
<tr>
<th>Name</th>
<th> Test </th>
<th> Delete </th>
</tr>
</thead>
<tbody>
{this.props.post.map(this.renderPosts.bind(this))}
</tbody>
</table>
</div>
</div>
</div>
</div>
);
}
}
function mapStateToProps(state) {
return { post:state.post.all};
}
私のモーダルは、それが正常に動作し、以下のようなものであるとき。私はこだわっていますのはここ
import React from 'react';
const Modal = ({onClick, modalId, className}) => {
return (
<div>
<button
type="button"
data-dismiss="modal"
className="btn btn-danger pull-xs-right"
onClick={onClick}>
DELETE
</button>
</div>
);
}
export default Modal;
は次のとおりです。私は小道具に添付のonClickメソッドを経由して、それぞれ異なるIDがdeleteThis
という出力することができますよ。ブートストラップでポップアップモーダル機能を使用したいと思います。以下のコードは私がポップアップ機能を得ることを可能にします。しかし、私の問題は、ボタンをクリックすると、onClickメソッドのIDが常に1
であることです。
Modal.js(モーダルとブートストラップボタン)
import React from 'react';
const Modal = ({onClick, modalId, classNameNameName}) => {
return (
<div>
<button type="button" className="btn btn-info btn-lg" data-toggle="modal" data-target="#myModal">Open Modal</button>
<div id="myModal" className="modal fade" role="dialog">
<div className="modal-dialog">
<div className="modal-content">
<div className="modal-footer">
<button type="button" className="btn btn-default" data-dismiss="modal" onClick={onClick.bind(this)}>Show Id</button>
</div>
</div>
</div>
</div>
</div>
);
}
export default Modal;
私はのonClickメソッドを持つボタンのみポップアップするモーダルの内側にあるので、IDは常に上記のコードのための1
理由があると思います他のボタンをクリックした場合。
上記のコードでidをonClickハンドラにバインドする方法はありますか?
私は私のような何かをする必要があります考えている:this
変数は常に現在を指します
onClick={this.deleteThis.bind((this,feed.id).bind(this))} />
をしかし、私は働いてコードにそれを変換する方法
私は反応優しいモーダルライブラリを使用することにしましたが、これも同様に働いた、ありがとう! – lost9123193