这样做,在与使用默认连接导出的位置相同的文件中定义组件,并传入文件中定义的组件。
这些陈述应该有助于消除您的误解。
使用 react 导航,您拥有屏幕(组件)和导航器。导航器是使用屏幕(组件)创建的。
您使用 react-redux 的 connect 函数将组件连接到 redux 存储。您只需将组件包装在对连接的调用中,然后导出该组件的返回值,而不是组件本身。
当您创建导航器时,您需要为您的屏幕导入组件。
看下面三个页面,我们做一个组件,通过react-redux的connect函数导出连接到redux store的组件。
然后我们制作一个路由器,它从反应导航中导出单个堆栈导航器,它定义了一个屏幕,即定义的组件(如上所述)。
然后我给出了一个示例,说明如何在 App.js 中渲染该路由器。
some-component.js
import React, {Component} from "react";
import {connect} from "react-redux"
// Define the component
class SomeComponent extends Component {
render() {
return null;
}
}
// Map dispatch to props
const mapDispatchToProps = (dispatch) => {
return {};
}
// Map state to props
const mapStateToProps = (state) => {
return {};
};
// Export the component, passed into the connect function from react-redux.
export default connect (mapStateToProps, {}) (SomeComponent);
然后在使用反应导航定义导航器时导入此文件。
例如
router.js
import SomeComponent from "./some-component.js";
import {createStackNavigator} from "react-navigation";
export default createStackNavigator({
PageOne: {
screen: SomeComponent
}
});
在您的 App.js(根级别)中
import React, {Component} from "react";
import Router from "./router.js";
export default class App extends Component {
render () {
return <Router/>;
}
}
这样的事情应该能让你整理好东西!