Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 尝试映射antd Select选项时,对象作为React子对象无效_Reactjs_Typescript_Antd - Fatal编程技术网

Reactjs 尝试映射antd Select选项时,对象作为React子对象无效

Reactjs 尝试映射antd Select选项时,对象作为React子对象无效,reactjs,typescript,antd,Reactjs,Typescript,Antd,我试图向api请求ID列表,并在antd的Select组件中显示它们 <Select style={{ width: "100%" }}> {myApi.getIds().then((result) => result.map((value) => { return <Select.Option value={value}>{value}</Select.Option> }))}

我试图向api请求ID列表,并在antd的
Select
组件中显示它们

<Select style={{ width: "100%" }}> 
    {myApi.getIds().then((result) => result.map((value) => {
        return <Select.Option value={value}>{value}</Select.Option>
    }))}                                               
</Select>

它不是在抱怨
,而是在抱怨
然后
的返回值

<Select style={{ width: "100%" }}> 
    {myApi.getIds().then((result) => result.map((value) => {
// −^^^^^^^^^^^^^^^^^^^^
        return <Select.Option value={value}>{value}</Select.Option>
    }))}                                               
</Select>

{myApi.getIds().then((结果)=>result.map((值)=>{
// −^^^^^^^^^^^^^^^^^^^^
返回{value}
}))}                                               
then
的返回值是一个承诺

您不能这样呈现调用
getIds
的结果。相反,您需要:

  • 在父组件中执行
    getid
    ,并让该组件将结果(如果可用)作为道具传递给该组件

  • 让此组件执行
    getid
    并在
    useffect
    回调(功能组件带挂钩)或
    componentDidMount
    class
    component)中等待结果,将结果保存在状态,并在渲染时使用该状态。当组件还没有信息时,它必须处理渲染

  • <Select style={{ width: "100%" }}> 
        {myApi.getIds().then((result) => result.map((value) => {
    // −^^^^^^^^^^^^^^^^^^^^
            return <Select.Option value={value}>{value}</Select.Option>
        }))}                                               
    </Select>