【发布时间】:2022-10-15 14:26:09
【问题描述】:
我正在重用几个外部组件来在strapi 应用程序中创建我的自定义组合框。 值是从服务器接收的,所以我需要动态添加选项。 目前有以下代码:
import React, { useState, useEffect } from "react";
import {
Combobox,
ComboboxOption
} from "@strapi/design-system";
export default function ComboboxCustom({
valuesList,
valueSelected
}) {
const [value, setValue] = useState('');
const combo = (<Combobox label="Country" value={value} onChange={setValue}>
{valuesList.map((entry) => {
return(
<ComboboxOption value="{entry.id}">{entry.name}</ComboboxOption>
);
})}
</Combobox>);
// setValue(valueSelected)
return combo;
}
一切都很顺利,直到我尝试根据另一组数据设置“选定”选项。在静态世界中,我可以说useState(valueSelected),它会起作用。但是由于代码是动态生成的,还没有相关的选项,所以我遇到了“无法获得未定义的'props'属性”这样的失败。
我试图将此组合框放入一个变量中,并在创建和返回它之间设置状态(在 return 语句之前注释 setValue 行),但随后应用程序进入一个循环并返回“太多重新渲染”。
有谁知道如何更改/重写它以便能够为动态创建的组合框设置选定的值?
【问题讨论】:
标签: javascript reactjs combobox programmatically-created