为了账号安全,请及时绑定邮箱和手机立即绑定

react里render里面调用方法怎么会疯狂执行?

react里render里面调用方法怎么会疯狂执行?

慕勒3428872 2019-03-05 05:11:43
代码运行后疯狂执行,不知道为什么?或者说有没有更好的写法?代码如下://从父组件接收componentWillReceiveProps(nextProps) {        this.setState({            code: nextProps.capacityBlockIndex        })}request = (str) => {        console.log("done" + str);  //控制台疯狂的输出        ajax({            url: '//api',            jsonp: 'callback',            data: {                'capabilityCode': str            },            success: (res) => {                this.setState({                    taskArr: res.values                });                return;            },            error: () => { }        });    }            render(){        if(this.state.code === 0){            this.request('infor_display_ability');        }    }
查看完整描述

2 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

你在render里调用request发起ajax请求 成功后setState然后重新渲染render调用request。。。开始循环


查看完整回答
反对 回复 2019-03-05
?
富国沪深

TA贡献1790条经验 获得超9个赞

不能在这个生命周期中componentWillReceiveProps做setState操作。

这个钩子本身的触发条件就是state,或者props改变就执行,你这样写,肯定会一直相互反复触发的。


查看完整回答
反对 回复 2019-03-05
  • 2 回答
  • 0 关注
  • 2461 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信