React点击事件,子组件只能首次获取数据,再次点击无法获取

Lampos Lampos 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
问题具体描述如下:
如下图1点击管理然后弹出来一个模态框,模态框里面的基础信息图2是一个子组件(管理点击事件上带着数据id),子组件把传递过来的id拿到通过接口获取数据,
图1:

图2:


现在的问题先点ECU21测试-室外温度的管理可以正常获取数据,但是关闭了再点击电气柜的管理操作,所弹出来的数据没有改变。下面是相关代码和通过console.log打印的数据

代码-父组件:
	// 管理事件
onChange = (record,e) => {
//var devId = record.record.id;//当前设备id
e.preventDefault();

console.log('父组件');
console.log(record.record.id);
console.log('父组件');

this.setState({
currentDevId: record.record.id,
title:record.record.device_name,
visible:true
}, () => {
// this.setState({visible:true})
});
}


传递参数代码 - 通过devid传递:
			<Modal
title={"设备资料管理 - "+this.state.title}
width={850}
style={{ top: 20 }}
visible={this.state.visible}
onOk={this.handleOk}
onCancel={this.handleCancel}
okText="保存"
cancelText="取消"
>
<Tabs>
<TabPane tab="基础信息" key="1" >
<BasicInfo devid={this.state.currentDevId} />
</TabPane>
<TabPane tab="运行参数" key="2"><RunParams devid={this.state.currentDevId} /></TabPane>
<TabPane tab="部件" key="3"><Part /></TabPane>
<TabPane tab="文档" key="4"><Document /></TabPane>
<TabPane tab="巡检" key="5"><Inspection /></TabPane>
<TabPane tab="下级设备" key="6"><DownEquip /></TabPane>
<TabPane tab="权限" key="7"><DeviceAuth /></TabPane>
</Tabs>
</Modal>


子组件:

// 获取设备信息
componentWillMount(){
console.log('子组件');
console.log(this.props);
console.log('子组件');

this.setState({
devId:this.props.devid,
userId:localStorage.userId,
organizationId:localStorage.organizationId
});

let formData = new FormData;

formData.append('devid',this.props.devid);

let opts = {method:'POST',body:formData};

fetch("http://api.test.net/?s=Device.getDeviceInfo",opts)
.then(response => response.json())
.then(json => {
console.log(json);
this.setState({datas:json.data});
})
}


下面是打印点击了三次打印的console.log数据


网上查询 了有说使用定时器或者 说setState第二个参数,这个是可以获取,但是没法执行相应操作,其它的也试了,但是还是不能获取到数据。希望各位大佬能为我解惑或者提供相关思路,不甚感激
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
Lampos
JavaScript 87,984 成员 224,681 内容