将新状态设置为现有阵列状态

时间:2019-08-15 09:57:33

标签: javascript react-native

如果我的状态看起来像这样

this.state = {
names: [
"Snap, Crackle, Pop"
]
}

是否可以通过引用现有数组的索引号来创建新状态?

应该是这样的吗?这只是一个例子。

this.state = {
names: [
"Snap, Crackle, Pop"
],
myName: this.state.names[0]
}

3 个答案:

答案 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 });