react-native - useLayoutEffect 没有渲染视图
问题描述
我在堆栈导航标题右侧有一个语言按钮。所以在我的里面我Home.js
添加了
useLayoutEffect(() => {
navigation.setOptions({
headerRight: () => (
<TouchableOpacity style={{ marginRight: 20, }} onPress={() => {
languagePressed()
}}>
<Text style={{ color: '#0067DE', fontWeight: 'bold', fontSize: 16, }}>{buttonTitle}</Text>
</TouchableOpacity>
),
});
}, [navigation])
然后在我实现的同一个类languagePressed
中
function languagePressed() {
if (lang == 'ur') {
setButtonTitle("English")
setLang("ur")
} else {
setButtonTitle("اردو")
setLang("en")
}
}
这是我要更新的两个状态:
const [lang, setLang] = useState("en");
const [buttonTitle, setButtonTitle] = useState("اردو")
当我按下按钮时,没有任何反应。按钮的标题保持不变。
解决方案
推荐阅读
- node.js - 上传到 GCP 存储桶的 Firebase 函数访问被拒绝
- spring-boot - 如何阻止Tomcat重新启动?
- google-api - Google CalDav Api 不会返回重复事件的单个实例
- java - 将我的应用程序打包为 JAR 后,生成的 XML 文件中奇怪地显示希腊字符
- html - alert() 突然停止处理谷歌应用脚本
- python - 将行附加到现有数据框的最快方法?
- java - Criteria Builder 与 AttributeConverter 类似
- python - Python - 不会为员工开启或关闭时钟,也不会写入 csv 文件
- c - 从父进程和子进程关闭管道
- reactjs - 如何将特定文本分配给特定用户?