Javascript React Redux Axios-可以访问道具,然后不定义道具

Javascript React Redux Axios-可以访问道具,然后不定义道具,javascript,reactjs,redux,axios,Javascript,Reactjs,Redux,Axios,概述:我通过Axios发出GET请求(在本例中是一个模拟适配器),并让它通过分派更新我的存储。只要路径为“/posts/*”,模拟适配器就会发回相同的响应 奇怪的是,它实际上显示了来自模拟API的道具(持续1秒),但随后转到“道具未定义”(即无法读取未定义的属性“title”) 当我记录this.props时,它显示这些道具确实存在。所以我不认为有什么东西把它们改回了null 这里是axios部分,我目前将其放在middleware.js中的apiMiddleware函数中 di

概述:我通过Axios发出GET请求(在本例中是一个模拟适配器),并让它通过分派更新我的存储。只要路径为“/posts/*”,模拟适配器就会发回相同的响应

奇怪的是,它实际上显示了来自模拟API的道具(持续1秒),但随后转到“道具未定义”(即无法读取未定义的属性“title”)

当我记录this.props时,它显示这些道具确实存在。所以我不认为有什么东西把它们改回了null

这里是axios部分,我目前将其放在middleware.js中的apiMiddleware函数中

        dispatch({ type: 'GET_POST_AXIOS' });
        let { postID } = action.payload;
        mock.onGet(API_BASE + "/posts/" + postID).reply(200, {
          post:
            { id: 1,
              title: 'Test Title',
              description: 'Test Description',
              media: { medium_url: "http://test.com/test.jpg" }
            }
        });
        axios({
            url: API_BASE + "/posts/" + postID,
            timeout: 20000,
            method: 'get',
            responseType: 'json'
        })
        .then(function(response) {
                dispatch({ type: 'SERVE_POST_AXIOS', response: response.data });
            })
这是减速器部分

case 'SERVE_POST_AXIOS':
  return Object.assign({}, state, { post_axios: response.post })
这是我的mapDispatchToProps中呈现文章的组件。match.params来自react路由器的BrowserRouter

loadFromAxios(cb) {
    console.log("Load from Axios called..");
    dispatch({ type: 'API', payload: { success: 'GET_POST_AXIOS', postID: ownProps.match.params.postID } });
        cb();
    }

我通过修改我的条件解决了这个问题,这在本质上是错误的

this.state.loading ? 
<div>Loading</div>
:
<div>Info here with props</div>
为什么这不起作用

this.props.post ?
<div>Info here with props</div>
:
<div>Loading</div>
componentDidMount() {
    this.props.loadFromAxios( () => this.setState({ loading: false }) );
}