首页 > 解决方案 > 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("اردو")

当我按下按钮时,没有任何反应。按钮的标题保持不变。

标签: react-native

解决方案


推荐阅读