react-native-router-flux 将道具传递给场景
react-native-router-flux pass props to scenes
我有一组通过redux连接的场景组件。我正在尝试将道具传递给底层组件以访问我的操作。
const scenes = Actions.create(
<Scene key="root" hideNavBar={true} tabs={false} >
<Scene key="tabbar" tabs={false} hideNavBar={true}>
<Scene key='main' component={main} title="Main" initial/>
</Scene>
</Scene>
)
const RouterWithRedux = connect()(Router)
class AppContainer extends Component {
render() {
return <RouterWithRedux {...this.props} scenes={scenes}/>
}
}
function mapDispatchToProps(dispatch){
return bindActionCreators(ActionCreators, dispatch)
}
export default connect(() => {return {}}, mapDispatchToProps)(AppContainer)
我目前的行为是场景中的道具为空。
<Button onPress={() => {
console.log(this.props.addToInventory)//undefined
}}><Text>Add</Text></Button>
知道我做错了什么吗?从 v3 改变?道具如何在v4中传递?
因此,从 v3 开始,Actions.create 的工作方式似乎发生了变化,并且不像以前那样将子组件连接到 redux。下一个解决方案对我有用。
class AppContainer extends Component {
render() {
return <Router {...this.props}>
<Scene key="root" hideNavBar={true} tabs={false} >
<Scene key="tabbar" tabs={false} hideNavBar={true}>
<Scene key='main' component={main} title="Main" initial/>
</Scene>
</Scene>
</Router>
}
}
function mapDispatchToProps(dispatch){
return bindActionCreators(ActionCreators, dispatch)
}
export default connect(() => {return {}}, mapDispatchToProps)(AppContainer)
我有一组通过redux连接的场景组件。我正在尝试将道具传递给底层组件以访问我的操作。
const scenes = Actions.create(
<Scene key="root" hideNavBar={true} tabs={false} >
<Scene key="tabbar" tabs={false} hideNavBar={true}>
<Scene key='main' component={main} title="Main" initial/>
</Scene>
</Scene>
)
const RouterWithRedux = connect()(Router)
class AppContainer extends Component {
render() {
return <RouterWithRedux {...this.props} scenes={scenes}/>
}
}
function mapDispatchToProps(dispatch){
return bindActionCreators(ActionCreators, dispatch)
}
export default connect(() => {return {}}, mapDispatchToProps)(AppContainer)
我目前的行为是场景中的道具为空。
<Button onPress={() => {
console.log(this.props.addToInventory)//undefined
}}><Text>Add</Text></Button>
知道我做错了什么吗?从 v3 改变?道具如何在v4中传递?
因此,从 v3 开始,Actions.create 的工作方式似乎发生了变化,并且不像以前那样将子组件连接到 redux。下一个解决方案对我有用。
class AppContainer extends Component {
render() {
return <Router {...this.props}>
<Scene key="root" hideNavBar={true} tabs={false} >
<Scene key="tabbar" tabs={false} hideNavBar={true}>
<Scene key='main' component={main} title="Main" initial/>
</Scene>
</Scene>
</Router>
}
}
function mapDispatchToProps(dispatch){
return bindActionCreators(ActionCreators, dispatch)
}
export default connect(() => {return {}}, mapDispatchToProps)(AppContainer)