react 渲染前请求ajax,React setState不会在ajax成功时重新渲染

我在ajax函数中设置状态时遇到问题 . 循环ajax调用,并且为每次迭代渲染一个组件,所有组件都被添加到一个数组中 . 这个数组将用于设置我的组件的状态,然后我将返回this.state.toRender作为将出现在DOM上的JSX返回 .

var self = this;

$.ajax({

success: function(data) {

// generate array of objects

self.setState({toRender: renderArray});

由于JS按值传递,我不应该设置var self的状态,对吧?不知何故,我需要指向组件而不是ajax调用来改变状态 . 承诺似乎没有访问生成的数组,并且我没有使用回调获得结果 .

初始状态实际上通过ajax函数并返回我想要的内容,但应该更新状态的事件(DropDown选择)不会进行任何更改 .

子组件在父级的返回中被调用:

在子组件中我添加了这个函数:

pick : function(event) {

var selected = event.target.value;

this.setState({list: "all"}, this.props.newSelect('theUrl'));

我知道DropDown选择有效,因为我已经在项目的早期阶段成功使用了它 .

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值