我试图将传递给React.Component的对象作为属性分配给状态值,像这样,
state = {
rota: this.props.rota
}
render() {
// const { cleaning, chairs, creche, flowers } = this.state.rota;
const { cleaning, chairs, creche, flowers } = this.props.rota;
console.log(creche);
}
获得状态值的注释掉的部分打印出一个空字符串,但是属性值是正确的。将props.rota分配给state.rota时,我做错什么了吗?
我正在使用打字稿,并且已经在程序的另一位置进行了精确的操作-但是,传入的属性是值类型(字符串)而不是对象类型。
谢谢!
最佳答案
这通常是一个坏习惯。
看你的情况。
您可以从父组件获得作为道具的价值。
每当父组件中的此值更改时,内部组件将已经重新呈现。
如果您采用类似的方法,那么您最有可能要做的就是也要更改内部组件中的值(通过状态),该更改不会反映在父组件上。
实际上,您正在打破单向数据流的设计模式,这种模式在很大程度上依赖于反应。
因此,我个人的观点是在这种情况下提高国家地位,避免这种情况。如果您想将更改传达给父级,或者使用某些状态管理(上下文,redux等),请使用回调。
或使用HOC或渲染道具零部件设计更好的解决方案。