我在理解状态和setState时遇到问题,无法使我的代码正常工作:
构造函数:
constructor(){
super();
this.state = {
Ingredient : getRandomIngredient(baseArray)
}
}
按钮:
<Button title="Mix Salad"
onPress = {()=>this.handleButtonPress()}
/>
功能:
handleButtonPress= () => {
this.setState(
this.Ingredient = getRandomIngredient(baseArray)
)
}
一旦按下按钮,就会发生错误。 问题a)如何正确使用state和setState? 问题b)初始状态不会通过render()函数保持不变。我的成分对象仍然未定义。那可能不是故意的。我该怎么做,成分对象保留其值?
答案 0 :(得分:0)
这是错误的语法
this.setState(
this.Ingredient = getRandomIngredient(baseArray)
)
正确:
this.setState({ Ingredient : getRandomIngredient(baseArray) })
SetState函数始终带有对象参数
EDit:
请注意异步函数,如果getRandomIngredient()
花时间返回值,那么成分将为空
答案 1 :(得分:0)
您需要在setState
中使用一个对象。
handleButtonPress = () => {
this.setState({
Ingredient: getRandomIngredient(baseArray)
});
}