【发布时间】:2020-02-07 13:05:46
【问题描述】:
我是 React 新手,我想将父 props 分配给子组件的变量 like=>
this.setState({
tsmodel : props.dataSource
})
这里是父代码 =>
<TimeSheetDialog
fromdate={this.state.fromdate}
todsate={this.state.todate}
show={this.state.showmodel}
onHide={this.handleModelShow}
dataSource={this.state.selectedtsrow}/>
我将这个selectedtsrow 变量传递给子组件。
这是我的孩子代码=>
export default class TimeSheetDialog extends React.Component{
constructor(props){
super(props);
this.state = {
tsmodel : props.dataSource
};
}
render(){
return(
.
.
.
<DatePicker
selected={ this.state.tsmodel.tsdate }
onChange={(e)=>this.handleDateChange("tsdate",e)}
dateFormat="dd-MM-yyyy"
/>
)
}
}
我不能那样使用,因为这个 tsmodel 总是 undefined 。
我的要求是我不想使用this.props.dataSource.tsdate,我想使用this.state.tsmodel.tsdate。
如何将此父属性设置为子变量?我错过了逻辑吗?
【问题讨论】:
-
console.log(this.state.tsmodel) => 这会返回什么?
-
我尝试在构造函数和 componentwillMount 中这样打印,但两者都未定义,但在渲染块内部它有数据。
-
在构造函数中打印 - props.dataSource。那是未定义的吗?同时分享console.log(this.state.tsmodel)的输出
-
@MonicaAcha,对不起,在构造函数中,我得到了一个空对象。不是未定义的。
-
可能父母正在发送一个空对象。请确保您在父母中更新您的状态。或者分享设置状态的相关代码供我们调试
标签: reactjs