通过钩子以编程方式更新React功能标题中的导航标题标题

时间:2019-06-13 20:38:46

标签: react-native react-navigation

有关反应导航setParams()的

问题。我问过Reactiflux,但没有人回应。我试图在功能组件中以编程方式设置标题。

在另一个Stack Overflow线程中,像这样,追溯更新静态标题是可行的:

const Comp = props => { ... };

Comp.navigationOptions = ({ navigation }) => ({
  title: 'Static Title'
});

但是我需要从内部组件访问组件状态,这不起作用:

const Comp =({ navigation }) => {
 const [title, setTitle] = useState('');

 useEffect(() => {
     navigation.setParams({ title });
 }, [title]);

 return ( ... );
}

如果setParams()是错误的方法,请赐教

编辑:要补充一点,当我console.log(navigation)时,我可以看到它正在将navigation.state.params.title更改为正确的字符串,但是它没有显示为标题。

1 个答案:

答案 0 :(得分:2)

您需要获取标题参数并将其应用于标题:

Comp.navigationOptions = ({ navigation }) => ({
  title: navigation.getParam('title', /* your default title */)
});