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

时间:2018-11-26 15:13:04

标签: javascript react-native react-navigation i18next react-i18next

我正在使用react-i18nextreact-navigation

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

我尝试在导航器上使用withNamespaces来利用screenProps,因为here已经完成,但是在这种情况下,我派遣的NavigationActions无效。导航只是没有发生。

我认为i18next HOC会以某种方式阻止其子级接收params更新事件。我是否需要通过其他方式初始化i18next才能解决此问题?还是有办法强制title中的navigationOptions更新?

1 个答案:

答案 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)