是否可以从状态内部引用状态以创建ID。例如id = this.state.name + this.state.desc
像这样吗?
this.state = {name:'', desc:'', id:`${this.state.name}-${this.state.desc}`}
答案 0 :(得分:3)
不,那是行不通的。 pip3 install charm4py
在构造函数之前初始化,但它不喜欢您引用对象的未定义部分。您需要在初始化后进行设置。我假设您将在构造函数中使用this.state
。否则,您应该使用this.state = {blah}
。
但是,这也是一个坏习惯,因为只要您更新名称或desc,它就会使用新的id值再次更新状态。我不知道您代码的完整范围,但是您可以将ID保存到为您提供字符串的函数中。
答案 1 :(得分:0)
请记住,您需要使用setState
所以
this.setState({ id:`${this.state.name}-${this.state.desc}` })
这还假设您已经在构造函数(或应用程序中的其他位置)中设置了状态。
如果您在构造函数中,那么这应该可以正常工作...
this.state = { name: 'Toli', desc: 'A programmer' };
this.state = {...this.state, id:`${this.state.name}-${this.state.desc}`}
我假设您想保持name
和desc
的状态,所以我要使用扩展op(...this.state
)复制它们