Conditional React Navigation header button

╄→гoц情女王★ 提交于 2019-12-04 05:25:38

问题


I am trying to make a button appear in headerRight of the header bar in a React Navigation screen, but I cant seem to get it to work.

I want the start button (what is in headerRight) to show when props.players.length > 1.

Can anyone point me in the right direction?


回答1:


You can use the same mechanics describe here for title: https://reactnavigation.org/docs/en/headers.html#setting-the-header-title

Set a navigation params and use it on your navigationOptions.

In your case:

state = { players: 0 };

static navigationOptions = ({ navigation }) => {
  return {
    headerRight: navigation.getParam('players', 0) > 1 ? <YourHeaderButtonComponent /> : null ,
  };
};

addPlayer = () => {
    this.setState(({players}) => {
        this.props.navigation.setParams({players: players + 1})
        return {players: players + 1 }
    });
}

render {
    ...
    <Button onPress={this.addPlayer}
    ...
}


来源:https://stackoverflow.com/questions/51910326/conditional-react-navigation-header-button

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!