如果我的状态看起来像这样
this.state = {
names: [
"Snap, Crackle, Pop"
]
}
是否可以通过引用现有数组的索引号来创建新状态?
应该是这样的吗?这只是一个例子。
this.state = {
names: [
"Snap, Crackle, Pop"
],
myName: this.state.names[0]
}
答案 0 :(得分:1)
不。但是,您可以只存储索引,以便以后可以引用"users": {
"uid1": {
"user_details": {
"username": "username1"
}
},
"uid2": {
"user_details": {
"username": "username2"
}
}
}
。
firebase.database().ref('users')
.orderByChild('user_details/username')
.equalTo(username)
.once('child_added', snapshot => {
console.log('User found');
})
.then(() => {
console.log('No users found')
});
是更好的选择。然后
names
要引用实际名称时。
答案 1 :(得分:1)
我将其设置在componentDidMount
中:
componentDidMount() {
const { names, myName } = this.state;
if (!myName) this.setState({ myName: names[0] });
}
答案 2 :(得分:-1)
我认为最简单,最方便的方法是,您可以通过以下方式引用现有/以前的状态:
this.setState((prevState) => {
myName: prevState.names[0],
});
另一种方法是将其捕获到一个变量中,例如:
const myName = this.state.names[0];
this.setState({ myName });