React导航 - 设置参数,无需导航到现场
我想添加一个'重新加载'按钮到我的头,我通过调用setParams。问题是,这会导致与TabNavigator在推出导航到标签React导航 - 设置参数,无需导航到现场
export default class FeedScreen extends React.Component {
static navigationOptions = ({ navigation }) => {
const { params } = navigation.state;
if (params) {
return {
headerRight: <Icon.Button
color="black"
backgroundColor="transparent"
underlayColor="transparent"
name="reload"
onPress={ params.reload }
/>
};
}
}
constructor (props) {
super(props);
// We want to set attach a reload function to the navigation
this.props.navigation.setParams({
reload: this._reloadFeed.bind(this)
});
}
那么,有没有办法setParams无法浏览到这一幕,或者是有分配的功能,以这个图标不调用setParams的方法吗?
您是否尝试将onPress = {params.reload}设置为onPress = {()=> params.reload()}?
export default class FeedScreen extends React.Component {
static navigationOptions = ({ navigation }) => {
const { params } = navigation.state;
if (params) {
return {
headerRight: <Icon.Button
color="black"
backgroundColor="transparent"
underlayColor="transparent"
name="reload"
onPress={() => params.reload() } < -----
/>
};
}
}
constructor (props) {
super(props);
// We want to set attach a reload function to the navigation
this.props.navigation.setParams({
reload: this._reloadFeed.bind(this)
});
}
您可能正在寻找Navigation Actions,特别是导航的行动,被称为“setParams”(不带navigation.setParams()
混淆),你派遣这样:navigation.dispatch(myCreatedSetParamsAction)
不幸的是这还是引起了导航到场景 – user1537360
@ user1537360也许你不需要。绑定哟你的_reloadFeed函数。另外,也许,你应该在navigatorConfig中设置initialRouteParams,而不是在构造函数中设置setParams。 – Eduard
我能够解决此从头文件中调用一个静态函数,然后将这个静态函数更新到componentDidMount中的重装函数中。这是hacky,但工程。我的组件外
功能:
let _reloadFunction =() => {
// This exists because react navigation is a mess
}
导航选项
static navigationOptions = {
headerRight: <Icon.Button
color="black"
backgroundColor="transparent"
underlayColor="transparent"
name="reload"
onPress={() => { _reloadFunction() }}
/>
}
在组件:
// Gonna update that reloadFunction so the header works
_reloadFunction = this._reloadFeed.bind(this);
没有有所作为 – user1537360