类型错误:无法读取未定义的反应ant设计表的属性'map'



朋友们,我很难找到解决这个问题的方法。 我总是收到错误

无法读取未定义的反应蚁设计表的属性"映射"。 即使我尝试控制台.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没有价值,它就不会尝试映射它,这将解决您的问题。

最新更新