(反应)是否有一种方法可以在不触发未定义的情况下附加变量的值

时间:2018-08-04 02:05:50

标签: reactjs loops variables react-native

因此,我试图像这样附加变量的值:

state = { value: "" };

componentWillMount() {
  _this.setState({
    value: value + newValue
   })
}

但是,我一直遇到的错误是它认为该值未定义。 我尝试使用条件式仅在未定义时追加,但这似乎也不起作用。我可能缺少一些琐碎的东西,有什么主意吗?

4 个答案:

答案 0 :(得分:4)

在您的value中未定义

componentWillMount。您必须通过写入value从状态访问this.state.value

但是,如果要从当前状态中获取状态更新,则应将函数赋予setState并返回更新。

componentWillMount() {
  this.setState(previousState => {
    return { value: previousState.value + newValue };
  })
}

答案 1 :(得分:2)

您发布的代码由于许多原因无法正常工作,但我认为您要查找的是引用this.state.value而不是value

componentWillMount() {
   _this.setState({
      value: _this.state.value + newValue
   })
}

答案 2 :(得分:0)

未定义您在设置状态调用中​​引用的值,因为它是您要分配给的对象属性。您将需要使用this.state.value进行访问。

答案 3 :(得分:0)

未定义componentWillMount value内部。要访问实际状态,必须使用this.state.value。您可能想要使用funtional setState,因为general setState可能由于React中asynchronous的原因而导致setState本身为Object Composition,因此可能不提供最新的状态。