react-native-router-flux将道具传递给场景

问题描述 投票:0回答:1

我有一组通过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中传递道具?

react-native react-native-router-flux
1个回答
3
投票

因此,与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)
© www.soinside.com 2019 - 2024. All rights reserved.