嗨,我正在构建一个带有 react native 的应用程序(使用 expo)。当用户按下按钮(可触摸不透明度按钮)时,我想调用一个在数据库中添加记录的函数(这部分工作得很好),然后重新加载页面(组件)。我找不到有关如何重新加载组件的解决方案。我尝试了强制更新日期(),但它不起作用
这是我的代码
class Screen extends Component {
.
.
.
<TouchableOpacity
style={styles.style}
onPress={() => {
this.func(param1,param2),
alert("Something"),
//Reload the component
// I tried this.forceUpdat() but didn't work
}}
>
<Text> ... </Text>
</TouchableOpacity>
.
.
.
}
通过"重新加载组件",如果您的意思是刷新组件的内容,则需要使用组件状态呈现内容。之后,使用 setState 更新组件的状态。内容应在下次呈现中自动更新。
如果你能提供更多的细节,我可以修改它以详细说明。
同时,请阅读 React 文档以查看使用组件状态的一些示例。
我也遇到了同样的问题,然后我发现你只需要 Hooks 或 useState 来解决刷新问题。在我的刷新随机甲板的情况下
const [random1, setRandom1] = useState(
Math.floor(Math.random() * deck.length) + 1
);
<Image source={deck[random1]} style={styles.img} />
<Button
title="Refresh?"
onPress={() => {
setRandom1(Math.floor(Math.random() * deck.length) + 1);
}} />