我正在使用react-i18next
和react-navigation
。
目前,在需要时,我会分别用withNamespaces
包装所有组件。问题是我无法使title
中的static navigationOptions
保持最新。无论我如何分配它,它都不会更新:作为函数还是作为属性对象。 navigation.setParams
也不会对其进行更新。
我尝试在导航器上使用withNamespaces
来利用screenProps
,因为here已经完成,但是在这种情况下,我派遣的NavigationActions
无效。导航只是没有发生。
我认为i18next
HOC会以某种方式阻止其子级接收params更新事件。我是否需要通过其他方式初始化i18next
才能解决此问题?还是有办法强制title
中的navigationOptions
更新?
答案 0 :(得分:1)
好的,我想出了一种简单的方法来解决这个问题。我制作了一个只返回所需字符串的组件,并用withNamespaces
包裹了它,并将其放入title
的{{1}}道具中。效果很好。
这是示例代码。
标题组件
navigationProperties
用法
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)