gpt4 book ai didi

javascript - React Native + React I18next + React Navigation, navigationOptions 更新问题

转载 作者:行者123 更新时间:2023-11-30 14:16:33 25 4
gpt4 key购买 nike

我正在使用 react-i18nextreact-navigation

目前,当需要时,我用 withNamespaces 单独包装我的所有组件。问题是我无法使 static navigationOptions 中的 title 保持最新。它只是不更新​​,无论我如何分配它:作为函数或作为属性对象。 navigation.setParams 也不会更新它。

我尝试在导航器本身上使用 withNamespaces 来利用 screenProps,因为它已经完成了 here ,但在这种情况下,我发送的 NavigationActions 没有任何效果。导航就不会发生。

我假设 i18next HOC 以某种方式阻止其子级接收参数更新事件。我是否需要以其他方式初始化 i18next 来解决这个问题?或者有没有办法强制更新 navigationOptions 中的 title

最佳答案

好的,我想出了一个简单的方法来解决这个问题。我制作了一个只返回所需字符串的组件,我用 withNamespaces 包装它并将其放入 navigationPropertiestitle prop 中。工作正常。

这是一个示例代码。

标题组件

import React from 'react'
import PropTypes from 'prop-types'
import { withNamespaces } from 'react-i18next'
import { Text } from 'react-native'

const ScreenTitle = ({ path, t }) => <Text>{t(path)}</Text>

ScreenTitle.propTypes = {
path: PropTypes.string.isRequired,
t: PropTypes.func.isRequired,
}

export default withNamespaces()(ScreenTitle)

用法

static navigationOptions = () => {
return {
title: <ScreenTitle path="privacyPolicy:title" />,
}
}

关于javascript - React Native + React I18next + React Navigation, navigationOptions 更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53484087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com