【发布时间】:2016-11-14 22:24:19
【问题描述】:
我只是在制作一个简单的应用程序来学习与 redux 的异步。我已经让一切正常,现在我只想在网页上显示实际状态。现在,我如何在 render 方法中实际访问 store 的状态?
这是我的代码(所有内容都在一页中,因为我只是在学习):
const initialState = {
fetching: false,
fetched: false,
items: [],
error: null
}
const reducer = (state=initialState, action) => {
switch (action.type) {
case "REQUEST_PENDING": {
return {...state, fetching: true};
}
case "REQUEST_FULFILLED": {
return {
...state,
fetching: false,
fetched: true,
items: action.payload
}
}
case "REQUEST_REJECTED": {
return {...state, fetching: false, error: action.payload}
}
default:
return state;
}
};
const middleware = applyMiddleware(promise(), thunk, logger());
const store = createStore(reducer, middleware);
store.dispatch({
type: "REQUEST",
payload: fetch('http://localhost:8000/list').then((res)=>res.json())
});
store.dispatch({
type: "REQUEST",
payload: fetch('http://localhost:8000/list').then((res)=>res.json())
});
render(
<Provider store={store}>
<div>
{ this.props.items.map((item) => <p> {item.title} </p> )}
</div>
</Provider>,
document.getElementById('app')
);
所以,在 state 的 render 方法中,我想从 store 中列出所有的 item.title。
谢谢
【问题讨论】:
-
你快到了。您需要使用
react-redux库创建一个存储连接组件。我强烈推荐你通过作者的免费课程来加深你对 redux 的理解:egghead.io/courses/getting-started-with-redux -
您通过
store.getState()实际从您的商店中读取状态。 redux.js.org/docs/api/Store.html#getState -
感谢您的教程。我不完全了解 redux,本教程对我有很大帮助。
标签: javascript asynchronous reactjs redux react-redux