[英]Cannot resolve store in container (React, Redux)
首先,我想表明我是JS和React的业余爱好者。 我面临一个问题,我使用React-Router
显示的容器没有收到存储。 我不知道问题是什么。 我用Provider
包装了根组件,并且我的应用程序始终显示此类错误:
这是我的Application component
的片段:
const rootReducer = combineReducers({ adress: require('./StudiosListRedux').reducer }) const store = createStore(rootReducer) const App = ({store}) => ( <Provider store={store} > <BrowserRouter history={history}> <Switch> <Route exact path='/' component={WelcomeScreen} /> <Route path='/main' component={StudiosList} /> </Switch> </BrowserRouter> </Provider> )
这是我的WelcomeScreen container
:
export class WelcomeScreen extends Component { state = { city: '', street: '', number: '', withDrive: false } handleCityChange = (text) => { console.log('city', text) this.setState({ city: text }) } handleStreetChange = (text) => { console.log('street', text) this.setState({ street: text }) } handleNumberChange = (text) => { console.log('number', text) this.setState({ number: text }) } handleCheckBoxClick = () => { console.log('checkbox', 'pushed') this.setState({ withDrive: !this.state.withDrive }) } handleSearchClick = () => { const { city, street, number, withDrive } = this.state this.props.fetchStudios('query') } render () { const { city, street, number, withDrive } = this.state return ( <Container> <SearchComponent withDrive={withDrive} streetValue={street} cityValue={city} numberValue={number} onStreetChange={this.handleStreetChange} onCityChange={this.handleCityChange} onNumberChange={this.handleNumberChange} onCheckBoxClick={this.handleCheckBoxClick} onSubmitClick={this.handleSearchClick} /> </Container> ) } } export const mapStateToProps = state => { destination: state.adders.toJS() } const mapDispatchToProps = { fetchStudios: StudiosActions.studiosRequest } export default connect(mapStateToProps, mapDispatchToProps)(WelcomeScreen)
谁能帮我解决我的问题? 我应该怎么做才能为我的集装箱提供存放空间?
ReactDOM.render(<App store={store} />, document.getElementById("root"))
您似乎忘记了将商店传递给应用程序。 我可能是错的,除此之外还有其他原因,
如果App
是您的根组件,则它没有props
,那么您在这里尝试访问undefined
store
prop,并且您将覆盖之前所做的const
声明。
只需删除{ store }
prop声明:
const store = createStore(rootReducer)
const App = () => (
<Provider store={store} >
<BrowserRouter history={history}>
<Switch>
<Route exact path='/' component={WelcomeScreen} />
<Route path='/main' component={StudiosList} />
</Switch>
</BrowserRouter>
</Provider>
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.