Reactjs this.props.getUser不是函数mapDispatchToProps-React Native,Redux
因为我刚刚在我的react原生项目中实现了Redux,所以我创建了第一个reducer、action和store,但它不起作用 组件安装Reactjs this.props.getUser不是函数mapDispatchToProps-React Native,Redux,reactjs,react-native,redux,react-redux,Reactjs,React Native,Redux,React Redux,因为我刚刚在我的react原生项目中实现了Redux,所以我创建了第一个reducer、action和store,但它不起作用 组件安装 this.props.getUser(user()); console.log('Props: ', this.props); 控制台。日志: Props: {screenProps: undefined, navigation: {…}} 调度程序 const mapDispatchToProps = (dispatch) => { r
this.props.getUser(user());
console.log('Props: ', this.props);
控制台。日志:
Props: {screenProps: undefined, navigation: {…}}
调度程序
const mapDispatchToProps = (dispatch) => {
return ({
getUser: (data) => dispatch(data)
})
}
export default connect(mapStateToProps, mapDispatchToProps)(homeNav);
用户功能
export function user () {
return dispatch => {
console.log(21312312);
dispatch(request({}))
}
function request (user) {
return { type: GET_USER_REQUEST, user }
}
function success (user) {
return { type: GET_USER_SUCCESS, user }
}
function failure (error) {
return { type: GET_USER_FAILURE, error }
}
}
请查看下面的屏幕截图,查看homeNav是如何导入的
尝试更改此
getUser:(数据)=>dispatch(数据)
到
这个this.props.getUser(user())代码>
到
还需要包装你的应用程序如下
import { Provider } from 'react-redux';
import Route from './route';
let store = createStore(Reducers);
class App extends Component {
render() {
return (
<Provider store={store}>
<Route />}
</Provider>
);
}
}
export default App;
从'react redux'导入{Provider};
从“./Route”导入路由;
let store=createStore(减缩器);
类应用程序扩展组件{
render(){
返回(
}
);
}
}
导出默认应用程序;
您如何导入homeNav
组件?@FernandoMontoya您能检查问题末尾的屏幕截图吗?您可以在createStackNavigator
之前尝试将其连接到Redux,我刚刚尝试将我的MapStateTrops和mapDispatchToProps放在createStackNavigator之前,但连接线仍处于打开状态最后。因为homeNav在运行之前不会被访问,所以它仍然不起作用,所以还需要将您的路由和应用程序与Provider包装为import{Provider}from'react redux';从“./Route”导入路由;let store=createStore(减缩器);类应用程序扩展组件{render(){return(});}}}导出默认应用程序
在你的App.js中,它已经包装好,并且在正常页面中以不同的方式工作。。。我认为createStackNavigator有问题
this.props.getUser(data);
import { Provider } from 'react-redux';
import Route from './route';
let store = createStore(Reducers);
class App extends Component {
render() {
return (
<Provider store={store}>
<Route />}
</Provider>
);
}
}
export default App;