Javascript Can';ajax调用后无法接收更新的道具(react)

Javascript Can';ajax调用后无法接收更新的道具(react),javascript,ajax,reactjs,Javascript,Ajax,Reactjs,获取向服务器发送数据的func addRemark(id,e) { var remarktext = this.state.popUpText; this.props.addRemark(id,remarktext); // this func sends to serve this.props.closePopUp(); setTimeout(function() { this.props.IncomeListProfile(); }.bind

获取向服务器发送数据的func

addRemark(id,e) {

      var remarktext = this.state.popUpText;
      this.props.addRemark(id,remarktext); // this func sends to serve
      this.props.closePopUp();
      setTimeout(function() { this.props.IncomeListProfile(); }.bind(this), 1000);
    }
现在我正在等待用此代码更新我的列表
setTimeout(函数(){this.props.IncomeListProfile();

但我现在想清楚,什么时候数据会被添加

export function SendedData(data) {
if (data) {
  return {
      type: SENDED_REMARK, data:true
        }
}
}
在那里我收到了真实的请求。当请求好的时候

function mapStateToProps(state) {


      var sended = state.getIn(['PopupReducer'])['sendedRemark'];
      console.log(sended + 'true');
      return {

        sended: sended
            };

  }
但在发送请求后,我无法在我尝试执行的组件中获得真正的值

componentWillReceiveProps(nextProps) {
        this.setState({ sendeder: nextProps.sended });
        console.log('isshwon!!!! ' + this.state.sendeder); //get false every time
      }
所以,我的想法是,当我按下“保存”按钮时,我将请求发送到服务器,得到带有TRUE的响应,然后我需要更新我的列表

我使用axios的请求

export function addRemark(id,remarktext) {

    return dispatch => {

        return (
            console.log(id + remarktext),

            axios.post(Api.getURI("addremark"),{body: {course_id:id, remark:remarktext}}, {
            headers: { 'X-Authenticated-Userid': '15000500000@1' }
         }).then(function (response) {


                    //console.log(response.data);
                    dispatch(SendedData(response.data));

                })
            .catch((error) => {
                        console.log(error);
                })
            )
    }

}
你的减速机

[types.SENDED_DATA] : (state, action) => 
   return { ...state,
      data: Immutable.fromJS(action.d),ata
      isLoading: false
   }
您的组件

shouldComponentUpdate (nextProps) {
    return nextProps.data !== this.props.data
}

componentDidUpdate (prevProps) {
    if(prevProps.data !== this.props.data) {
       //do smthing that you need, data was changed
      this.props.IncomeListProfile();
    }
}

或者干脆不做任何事情来重新加载基于
数据
呈现的组件,因为
应该更新组件
返回
-它将使用Redux和axios重新加载I.m发送请求,是否可以合并它?
导出函数addRemark(id,remarktext){return dispatch=>{return return(console.log(id+remarktext),axios.post(Api.getURI(“addremark”),{body:{course_id:id,remarktext}},{headers:{'X-Authenticated-Userid':'15000500000@1然后(函数(response){//console.log(response.data);分派(sendedata(response.data));}).catch((error)=>{console.log(error);})}
Uncaught(承诺中)错误:操作必须是普通对象。使用自定义中间件进行异步操作。哦,是的,明白你的意思,那么为什么你不在通过reducer更改状态后更新组件DIDDUpdate上的列表?嗯……让我试试看,你可以从任何地方访问redux状态,更新答案