reactjs - React Native setState 不重新渲染
问题描述
这个组件的预期行为是这样的:我按下它,selectedOpacity() 函数被调用,状态被更新,所以它现在以 opacity=1 呈现。
但是由于某种原因,在调用 this.setState 之后,它并没有被重新渲染。我必须再次单击此组件以使其重新渲染并应用状态的不透明度更改。
export default class Category extends Component {
state = {
opacity: 0.5
}
selectedOpacity() {
// some stuff
this.setState({opacity: 1})
}
render() {
return(
<TouchableOpacity style={[styles.container, {opacity: this.state.opacity}]} onPress={() => {
this.selectedOpacity();
}}>
</TouchableOpacity>
)
}
解决方案
将selectedOpacity更改为箭头函数:
selectedOpacity = () => {
this.setState({opacity: 1})
}
然后:
onPress={this.selectedOpacity}
编辑:反应文档说它的实验性和语法称为公共类字段语法。
推荐阅读
- c++ - 我的 QuickSort 代码不适用于 1000000 多个元素(一百万个元素或更多)
- regex - 正则表达式匹配两个字符串之间的所有字符,包括尾部
- c - 为什么 _Generic 检查所有情况的值?
- python - 从 QDockWidget 附加和分离外部应用程序时的问题
- powerbi - 使用两个切片器值面对 KPI
- google-chrome-extension - Firefox 浏览器插件/扩展的麦克风权限
- c# - 与 Xamarin 绑定到自定义索引器时引发的 TargetParameterCountException
- php - Laravel,如何在 2 个网站之间链接 facebook 登录?
- clojure - 如何在clojure中将拉链移动到左/右节点?
- kubernetes - Google Kubernetes Engine 网络无法正常工作