有没有办法在使用 React Native Navigation v2 中的 mergeOptions 函数之前读取选项?
Is there a way to read the options before use the mergeOptions function in react native navigation v2?
有没有办法在使用 mergeOptions 函数之前读取选项。
我正在尝试添加一个使用相同按钮打开和关闭的 sideMenu。但是为了处理这个逻辑,我不想使用 redux,而是想在合并之前阅读选项,所以我可以简单地做一些像 visible: !pastVisible
.
这样的事情
navigationButtonPressed({ buttonId }) {
Navigation.mergeOptions(this.props.componentId, {
sideMenu: {
'left': {
visible: false
}
}
});
console.log(`Se presiono ${buttonId}`);
}
所以基本上我想在更改之前读取可见选项的值。
到目前为止,我只能使用 redux 来实现。
import React, {Component} from 'react';
import {View, Text} from 'react-native';
import { Navigation } from 'react-native-navigation';
import { connect } from 'react-redux';
import { toggleSideMenu } from './../../store/actions/index';
class SideDrawer extends Component {
constructor(props) {
super(props);
Navigation.events().registerComponentDidDisappearListener(({ componentId }) => {
this.props.toggleSideMenu(false);
});
}
render() {
return (
<View>
<Text>This is the sidedrawer</Text>
</View>
);
}
}
const mapDispatchToProps = dispatch => {
return {
toggleSideMenu: (visible) => dispatch(toggleSideMenu(visible))
};
};
export default connect(null, mapDispatchToProps)(SideDrawer);
然后我将监听器添加到侧边菜单组件。根据情况,我更新组件的当前状态(可见或不可见)。
最后,在我想使用侧边抽屉按钮的组件上,我只实现了 navigationButtenPressed
方法。然后我只调用 reducer 来了解当前的可见状态并切换它。
navigationButtonPressed({ buttonId }) {
const visible = !this.props.sideMenu;
Navigation.mergeOptions(this.props.componentId, {
sideMenu: {
'left': {
visible: visible
}
}
});
this.props.toggleSideMenu(visible);
}
如果有更简单的方法来实现这一点,我将很高兴知道。
有没有办法在使用 mergeOptions 函数之前读取选项。
我正在尝试添加一个使用相同按钮打开和关闭的 sideMenu。但是为了处理这个逻辑,我不想使用 redux,而是想在合并之前阅读选项,所以我可以简单地做一些像 visible: !pastVisible
.
navigationButtonPressed({ buttonId }) {
Navigation.mergeOptions(this.props.componentId, {
sideMenu: {
'left': {
visible: false
}
}
});
console.log(`Se presiono ${buttonId}`);
}
所以基本上我想在更改之前读取可见选项的值。
到目前为止,我只能使用 redux 来实现。
import React, {Component} from 'react';
import {View, Text} from 'react-native';
import { Navigation } from 'react-native-navigation';
import { connect } from 'react-redux';
import { toggleSideMenu } from './../../store/actions/index';
class SideDrawer extends Component {
constructor(props) {
super(props);
Navigation.events().registerComponentDidDisappearListener(({ componentId }) => {
this.props.toggleSideMenu(false);
});
}
render() {
return (
<View>
<Text>This is the sidedrawer</Text>
</View>
);
}
}
const mapDispatchToProps = dispatch => {
return {
toggleSideMenu: (visible) => dispatch(toggleSideMenu(visible))
};
};
export default connect(null, mapDispatchToProps)(SideDrawer);
然后我将监听器添加到侧边菜单组件。根据情况,我更新组件的当前状态(可见或不可见)。
最后,在我想使用侧边抽屉按钮的组件上,我只实现了 navigationButtenPressed
方法。然后我只调用 reducer 来了解当前的可见状态并切换它。
navigationButtonPressed({ buttonId }) {
const visible = !this.props.sideMenu;
Navigation.mergeOptions(this.props.componentId, {
sideMenu: {
'left': {
visible: visible
}
}
});
this.props.toggleSideMenu(visible);
}
如果有更简单的方法来实现这一点,我将很高兴知道。