打开 Griddle customComponent 上的 Bootstrap 模态单击
Open Bootstrap modal on Griddle customComponent click
我成功地使用 export default React.createClass
处理了 Boostrap Modal 和 Griddle table。
现在我想在用户单击 Griddle 的特定列时打开模式。这是通过使用处理点击的自定义组件完成的 code/event。但是由于自定义组件被定义为一个新的不同 class var editData = React.createClass
我无法访问主 class 的状态来打开模式。
我该如何进行?下面是代码,我不知道 是我遗漏的部分。
谢谢
卡尔
var editData = React.createClass({
render: function() {
return (
<div onClick={I DO NOT KNOW}>
Edit row data for id {this.props.rowData.id}
</div>
)
}
})
var columns = ["id", "name", "edit"]
var columnMeta = [{
columnName: "edit",
customComponent: editData
}]
export default React.createClass({
close() {this.setState({ showModal: false })},
open() {this.setState({ showModal: true })},
render() {
return (<div>
<Modal show={this.state.showModal} onHide={this.close}>
<Modal.Header closeButton>
<Modal.Title>Modal heading</Modal.Title>
</Modal.Header>
<Modal.Body>
Text in a modal
</Modal.Body>
<Modal.Footer>
<Griddle columns={columns} columnMetadata={columnMeta} />
</div>)
}
})
通过在道具中传递一个函数来解决。下面是我所做的。
var editData = React.createClass({
handleChange(){
this.props.metadata.onChange("your value here")
},
render: function() {
return (
<div onClick={this.handleChange}>
Edit row data for id {this.props.rowData.id}
</div>
)
}
})
var columns = ["id", "name", "edit"]
export default React.createClass({
handleChange(e){
console.log(e)
},
close() {this.setState({ showModal: false })},
open() {this.setState({ showModal: true })},
render() {
var columnMeta = [{
columnName: "edit",
customComponent: editData,
onChange: this.handleChange
}]
return (<div>
<Griddle columns={columns} columnMetadata={columnMeta} />
</div>)
}
})
我成功地使用 export default React.createClass
处理了 Boostrap Modal 和 Griddle table。
现在我想在用户单击 Griddle 的特定列时打开模式。这是通过使用处理点击的自定义组件完成的 code/event。但是由于自定义组件被定义为一个新的不同 class var editData = React.createClass
我无法访问主 class 的状态来打开模式。
我该如何进行?下面是代码,我不知道 是我遗漏的部分。
谢谢 卡尔
var editData = React.createClass({
render: function() {
return (
<div onClick={I DO NOT KNOW}>
Edit row data for id {this.props.rowData.id}
</div>
)
}
})
var columns = ["id", "name", "edit"]
var columnMeta = [{
columnName: "edit",
customComponent: editData
}]
export default React.createClass({
close() {this.setState({ showModal: false })},
open() {this.setState({ showModal: true })},
render() {
return (<div>
<Modal show={this.state.showModal} onHide={this.close}>
<Modal.Header closeButton>
<Modal.Title>Modal heading</Modal.Title>
</Modal.Header>
<Modal.Body>
Text in a modal
</Modal.Body>
<Modal.Footer>
<Griddle columns={columns} columnMetadata={columnMeta} />
</div>)
}
})
通过在道具中传递一个函数来解决。下面是我所做的。
var editData = React.createClass({
handleChange(){
this.props.metadata.onChange("your value here")
},
render: function() {
return (
<div onClick={this.handleChange}>
Edit row data for id {this.props.rowData.id}
</div>
)
}
})
var columns = ["id", "name", "edit"]
export default React.createClass({
handleChange(e){
console.log(e)
},
close() {this.setState({ showModal: false })},
open() {this.setState({ showModal: true })},
render() {
var columnMeta = [{
columnName: "edit",
customComponent: editData,
onChange: this.handleChange
}]
return (<div>
<Griddle columns={columns} columnMetadata={columnMeta} />
</div>)
}
})