问题。我问过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
更改为正确的字符串,但是它没有显示为标题。
答案 0 :(得分:2)
您需要获取标题参数并将其应用于标题:
Comp.navigationOptions = ({ navigation }) => ({
title: navigation.getParam('title', /* your default title */)
});