朋友们,我很难找到解决这个问题的方法。 我总是收到错误
无法读取未定义的反应蚁设计表的属性"映射"。 即使我尝试控制台.log我返回的对象也有一个数据它不为空。 但是我收到一个错误。 我想错误导致我的道具是空的。
父容器从 API 获取数据:
<TabPane style={{ marginTop: 20 }} tab="My Settlements" key="1" >
<MySettlements settlementprops={this.state.settlements} />
</TabPane>
组件处理来自 API 的对象
render() {
const settlementprops = this.props.settlementprops;
const tableData = settlementprops.map((obj) => ({
campaign_name: obj.campaign_name
}))
const columns = [{
title: 'Campaign Name',
dataIndex: 'campaign_name',
key: 'campaign_name',
}
];
var tableViewDom = [];
tableViewDom.push(
<Table
className='my_campaigns_table'
columns={columns} dataSource={tableData}
>
</Table>
)
更改
const settlementprops = this.props.settlementprops;
自
const settlementprops = this.props.settlementprops || []
您可能正在从 componentDidMount 中的 API 加载数据,该数据在第一次渲染后触发。无论您的变量是什么,只需像这样短路即可:
this.state.myArray && this.state.myArray.map(...)
这样,如果this.state.myArray
没有价值,它就不会尝试映射它,这将解决您的问题。