Javascript 在React状态下使用原型
我试图使用原型使从深度嵌套的对象中查找数据变得更容易。问题是,当我使用lodash的Javascript 在React状态下使用原型,javascript,reactjs,prototype,Javascript,Reactjs,Prototype,我试图使用原型使从深度嵌套的对象中查找数据变得更容易。问题是,当我使用lodash的cloneDeep函数时,原型链断了(我非常确定)。我正在使用cloneDeep函数来确保不直接改变状态 在利用项目中的一些代码浪费任何人的时间之前,这是一种好的做法吗?在状态下存储对象时,执行以下操作是正确的还是应该避免原型 const parent={a:{b:{c:null}} const child=Object.create(父级) 父项a.b.c=子项 this.setState({parent})
cloneDeep
函数时,原型链断了(我非常确定)。我正在使用cloneDeep
函数来确保不直接改变状态
在利用项目中的一些代码浪费任何人的时间之前,这是一种好的做法吗?在状态下存储对象时,执行以下操作是正确的还是应该避免原型
const parent={a:{b:{c:null}}
const child=Object.create(父级)
父项a.b.c=子项
this.setState({parent})
提前感谢您的帮助:)a)我建议使用typescript而不是proptypes。它更强大、更高效
b) 深度克隆对象不需要lodash。只要做:
constobjecta={name:“Joe”,年龄:44}
const clonedObjectA={…objectA}
//变异克隆对象
clonedObjectA.name=“Paul”,
log(“objectA”,objectA)//原始未触及
log(“clonedObjectA”,clonedObjectA)//新对象发生了变化
我会再次使用任何深度嵌套的抽象作为状态。你的州应该尽可能平坦。嵌套导致了真正的错误代码,更新成为一项艰巨的任务
constructor() {
this.state = {foo: 'bar', a: 1, b: 2}
}
handleEvent(event) {
this.setState({ ...this.state, foo: event.target.value })
}
render() {
const { foo, a, b } = this.state
// ...
}
但这并不是React前进的方向。我建议看一看最新的发行说明。
{…objectA}
只是一个浅显的副本。有关深入克隆对象的方法,请参见。