1
ので、私はこのようなReact-Modal
を使用してダイアログを得たリアクトアイテムごとに1つのモーダル?シングルダイアログ - - レンダリングの変更オブジェクトは、モーダル
表の行:
var React = require('react');
var ReactDOM = require('react-dom');
var Modal = require('react-modal');
var $ = require('jquery');
var VehiclePlantDialog = require('./VehiclePlantDialog.jsx');
const customStyles = {
content: {
top: '50%',
left: '50%',
right: 'auto',
bottom: 'auto',
marginRight: '-50%',
transform: 'translate(-50%, -50%)'
}
};
var VehiclePlantRow = React.createClass({
getInitialState: function() {
return { modalIsOpen: false };
},
openModal: function() {
console.log("set state open");
this.setState({ modalIsOpen: true });
},
afterOpenModal: function() {
},
closeModal: function() {
this.setState({ modalIsOpen: false });
},
componentWillMount: function() {
Modal.setAppElement('body');
},
render: function() {
return (
<tr key={this.props.plant.id}>
<td>{this.props.plant.code}</td>
<td>{this.props.plant.name}</td>
<td>{this.props.plant.createdAt}</td>
<td>{this.props.plant.expiresAt}</td>
<td>
{this.props.plant.isExport == 0 ? 'No' : 'Yes'}
</td>
<td>
<button onClick={this.openModal}>Edit</button>
<Modal
isOpen={this.state.modalIsOpen}
onAfterOpen={this.afterOpenModal}
onRequestClose={this.closeModal}
shouldCloseOnOverlayClick={false}
style={customStyles} >
<VehiclePlantDialog openModal={this.openModal} closeDialog={this.closeModal} plant={this.props.plant}/>
</Modal>
</td>
</tr>
);
}
});
module.exports = VehiclePlantRow;
どのように私はちょうど1モーダルを作成することを確認し、私が開いてるときにオブジェクトを変更することができますがモーダル言いましたか?
これを終了して、素晴らしい人に感謝します!それは魅力のように働いています。しかし、あなたのソリューションにSidenoteを呼び出すときに、 'this'自体ではなく' propsから 'bind'を呼び出すときには、セキュリティ上の理由から最初のパラメータとして' null'を渡す必要があります(React stuff)。 'this.props.onSelect.bind(null、this.props.plant)'。受け入れられ、あなたの答えをupvoted。一束ありがとう!それは私にしばらくかかった。 – Tikkes