描述错误
我通过 redux 创建了一个商店并将其放入_app.js
下一个,但它有错误:
法典
const theme = responsiveFontSizes(createMuiTheme());
const initStore = createStore(
Reducers,
initialState,
applyMiddleware(thunkMiddleware)
);
const _App = withRedux(initStore)(
class _App extends App {
static async getInitialProps({ Component, ctx }) {
let pageProps = {};
if (Component.getInitialProps) {
pageProps = await Component.getInitialProps(ctx);
}
return { pageProps };
}
constructor(props) {
super(props);
}
componentDidMount() {
fonts();
const jssStyles = document.querySelector("#jss-server-side");
if (jssStyles && jssStyles.parentNode) {
jssStyles.parentNode.removeChild(jssStyles);
}
}
render() {
const { Component, pageProps, store } = this.props;
return (
<React.Fragment>
<Head>
<title>Doctor Finder</title>
<meta
name="viewport"
content="minimum-scale=1, initial-scale=1, width=device-width"
/>
</Head>
<ThemeProvider theme={theme}>
{/* CssBaseline kickstart an elegant, consistent, and simple baseline to build upon. */}
<CssBaseline />
<Provider store={store}>
<Component {...pageProps} />
</Provider>
</ThemeProvider>
</React.Fragment>
);
}
}
);
export default _App;
错误
/!\ 您正在使用遗留实现。请更新您的代码:使用 createWrapper(( 和 wrapper.withRedux((。
类型错误:makeStore 不是一个函数
非常感谢!!
不确定 withRedux api 是什么,但根据错误,它似乎需要一个函数,但您正在向其传递一个对象(initStore(。
尝试将 initStore 更改为如下所示的内容:
const initStore = () => createStore(
Reducers,
initialState,
applyMiddleware(thunkMiddleware)
);