在 class 之外访问道具
Access props outside class
我正在使用启用了 cellEdit
的 react-bootstrap-table
。编辑单元格后,可以在 react-bootstrap-table
中使用回调函数。我将回调函数命名为 onAfterSaveCell
。 table 中的更新行将保存到名为 row
的变量中。我想将 row
发送给一个名为 pushData
的动作创建者,它接受 row
作为输入。我的代码看起来像这样。
function onAfterSaveCell(row, cellName, cellValue){
this.props.pushData(row);
}
const cellEditProp = {
mode: "click",
blurToSave: true,
afterSaveCell: onAfterSaveCell
};
class Feature extends Component {
componentWillMount() {
this.props.fetchMessage();
}
render() {
if (!this.props.message) return null
return (
<div>
<BootstrapTable
data={this.props.message}
cellEdit={cellEditProp}
>
<TableHeaderColumn dataField="ccyCode" isKey={true} dataSort={true}>Valutakod</TableHeaderColumn>......
当我 运行 代码时,我的错误 Uncaught TypeError: Cannot read property 'props' of undefined
。我认为这是由于 props
在 class Feature
之外不可用。我试图将 onAfterSaveCell
函数和 cellEditProp
移入 class Feature
但这给了我一个编译错误。我怎样才能使 props
在 class Feature
之外可以访问,或者应该以其他方式解决这个问题?
你是对的,你不能在class之外使用this
关键字。所以显而易见的答案是在 class 中定义回调函数。我认为你得到编译错误的原因是语法错误,因为这应该可以正常工作:
class Feature extends Component {
constructor(props, context) {
super(props, context);
this.onAfterSaveCell = this.onAfterSaveCell.bind(this); // important!
}
componentWillMount() {
this.props.fetchMessage();
}
onAfterSaveCell(row, cellName, cellValue) {
this.props.pushData(row);
}
render() {
if (!this.props.message) return null
return (
<div>
<BootstrapTable
data={this.props.message}
cellEdit={{
mode: "click",
blurToSave: true,
afterSaveCell: this.onAfterSaveCell
}}
>
<TableHeaderColumn dataField="ccyCode" isKey={true} dataSort={true}>Valutakod</TableHeaderColumn>......
我正在使用启用了 cellEdit
的 react-bootstrap-table
。编辑单元格后,可以在 react-bootstrap-table
中使用回调函数。我将回调函数命名为 onAfterSaveCell
。 table 中的更新行将保存到名为 row
的变量中。我想将 row
发送给一个名为 pushData
的动作创建者,它接受 row
作为输入。我的代码看起来像这样。
function onAfterSaveCell(row, cellName, cellValue){
this.props.pushData(row);
}
const cellEditProp = {
mode: "click",
blurToSave: true,
afterSaveCell: onAfterSaveCell
};
class Feature extends Component {
componentWillMount() {
this.props.fetchMessage();
}
render() {
if (!this.props.message) return null
return (
<div>
<BootstrapTable
data={this.props.message}
cellEdit={cellEditProp}
>
<TableHeaderColumn dataField="ccyCode" isKey={true} dataSort={true}>Valutakod</TableHeaderColumn>......
当我 运行 代码时,我的错误 Uncaught TypeError: Cannot read property 'props' of undefined
。我认为这是由于 props
在 class Feature
之外不可用。我试图将 onAfterSaveCell
函数和 cellEditProp
移入 class Feature
但这给了我一个编译错误。我怎样才能使 props
在 class Feature
之外可以访问,或者应该以其他方式解决这个问题?
你是对的,你不能在class之外使用this
关键字。所以显而易见的答案是在 class 中定义回调函数。我认为你得到编译错误的原因是语法错误,因为这应该可以正常工作:
class Feature extends Component {
constructor(props, context) {
super(props, context);
this.onAfterSaveCell = this.onAfterSaveCell.bind(this); // important!
}
componentWillMount() {
this.props.fetchMessage();
}
onAfterSaveCell(row, cellName, cellValue) {
this.props.pushData(row);
}
render() {
if (!this.props.message) return null
return (
<div>
<BootstrapTable
data={this.props.message}
cellEdit={{
mode: "click",
blurToSave: true,
afterSaveCell: this.onAfterSaveCell
}}
>
<TableHeaderColumn dataField="ccyCode" isKey={true} dataSort={true}>Valutakod</TableHeaderColumn>......