Reactjs TypeError:无法读取属性';地图';未定义反作用设计表的构造

Reactjs TypeError:无法读取属性';地图';未定义反作用设计表的构造,reactjs,ant-design-pro,Reactjs,Ant Design Pro,朋友们,我很难找到解决办法。我总是出错 无法读取未定义的react-ant设计表的属性“map”。即使当我尝试console.log我返回的对象时,也有一个数据不是空的。但是我犯了一个错误。我猜这个错误导致我的道具是空的 父容器从api获取数据: <TabPane style={{ marginTop: 20 }} tab="My Settlements" key="1" > <MySettlements settlementprops={this.state.settle

朋友们,我很难找到解决办法。我总是出错

无法读取未定义的react-ant设计表的属性“map”。即使当我尝试console.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>
     )
render(){
const settlementprops=this.props.settlementprops;
const tableData=settlementprops.map((obj)=>({
活动名称:obj.campaign\u名称
}))
常量列=[{
标题:“活动名称”,
数据索引:“活动名称”,
关键字:“活动名称”,
}
];
var tableViewDom=[];
tableViewDom.push(
)
更改

const settlementprops = this.props.settlementprops;


您可能正在从componentDidMount中的API加载数据,该API在第一次渲染后会触发。无论变量是什么,只需将其短路如下:

this.state.myArray&&this.state.myArray.map(…)

这样,如果
This.state.myArray
没有值,它将不会尝试映射它,这将解决您的问题

const settlementprops = this.props.settlementprops || []