for 循环中的 SetState 按钮抛出最大深度异常
SetState button in for loop throws Maximum Depth exception
我正在尝试使用一行五个按钮在 React-Native 应用程序上实现 1 到 5 星评级,每个按钮将组件状态中的得分值设置为整数(1、2、3、4或 5).
这是呈现一行五个按钮的函数:
renderRating(){
return(
<Row>
<>{[1,2,3,4,5].map(star => this.renderStar(star))}</>
</Row>
)
}
每个按钮的呈现方式如下:
renderStar(value){
return(
<Col>
<Button onPress={this.setState({score: value})}>
<Text>{value}</Text
</Button>
</Col>
)
}
但是,当我尝试渲染它时,出现“超出最大更新深度”异常。我试着单独编写所有 Col 元素,看看这是否是将“setState”函数放入 for 循环中的问题,但它也会在那里抛出异常。有什么解决方法吗?
用于更新状态的 setState 函数在状态更新时被渲染周期重复调用,然后重新渲染并再次调用该函数,但您收到此错误。
尝试在按下按钮时添加箭头功能:
<Button onPress={() => this.setState({score: value})}>
这意味着无论何时按下按钮然后调用 setState。
我正在尝试使用一行五个按钮在 React-Native 应用程序上实现 1 到 5 星评级,每个按钮将组件状态中的得分值设置为整数(1、2、3、4或 5).
这是呈现一行五个按钮的函数:
renderRating(){
return(
<Row>
<>{[1,2,3,4,5].map(star => this.renderStar(star))}</>
</Row>
)
}
每个按钮的呈现方式如下:
renderStar(value){
return(
<Col>
<Button onPress={this.setState({score: value})}>
<Text>{value}</Text
</Button>
</Col>
)
}
但是,当我尝试渲染它时,出现“超出最大更新深度”异常。我试着单独编写所有 Col 元素,看看这是否是将“setState”函数放入 for 循环中的问题,但它也会在那里抛出异常。有什么解决方法吗?
用于更新状态的 setState 函数在状态更新时被渲染周期重复调用,然后重新渲染并再次调用该函数,但您收到此错误。
尝试在按下按钮时添加箭头功能:
<Button onPress={() => this.setState({score: value})}>
这意味着无论何时按下按钮然后调用 setState。