我想nextjs在新项目中使用redux和thunk。我想知道如何正确实现所有程序包。
在我之前的项目页面中,HOC组件如下:
import {connect} from 'react-redux';
import Page from './about';
import {fetchUsers} from '../../actions/user';
const mapStateToProps = (state) => {
const {users} = state;
return users;
};
const mapDispatchToProps = (dispatch) => {
return {
fetchUsers: () => dispatch(fetchUsers())
};
};
export default connect(mapStateToProps, mapDispatchToProps)(Page);
以及获取我在其中实现的用户的方法 componentDidMount
如何实现相同的逻辑nexjs?
我该怎么办
- 已实现商店(基于_app.js中的next-redux-wrapper)
HOC使用mapStateToProps和 创建的组件(如下所示)mapDispatchToProps
目前,我正在考虑在某种程度上使用某种this.props.fetchUsers方法getInitialProps-文档说该方法应该用于在渲染站点之前获取数据。
请帮助我正确redux实施nextjs
您可以按照以下示例进行操作 ,正确的方法是将存储传递到
getInitialProps上下文和App组件,以便将其传递到Provider。将
getInitialProps不能访问到组件的情况下,这是无法访问的,所以你不能打电话this.props.fetchUsers,但是,因为你是路过商店的情况下,你可以做store.dispatch(fetchUsers())和删除调度mapDispatchToProps。通常,我在中调度动作
getInitialProps,然后将状态映射到中的道具connect。