当它转到getDropDownOptions时,我得到了这个错误-超过了最大更新深度。当组件在componentWillUpdate或componentDidUpdate内重复调用setState时,可能会发生这种情况。React限制了嵌套更新的数量,以防止无限循环我没有使用任何componentWillUpdate或componentDidUpdate,也没有在任何与此功能相关的地方设置状态。rowInfo是数组中的项,即Im映射。allProducts是我从父组件获得的数据。
return (
<SelectBox
options={getDropdownOptions}
value={{ label: '', value: '' }}
onChange={e =>
onItemChange({
itemKey: headerItem.itemKey,
arrayIndex: index,
value: { label: e.value, value: e.value }
})
}
customClass="lineItemDropdown"
/> ```
const getDropdownOptions = () => {
const dropDownOptions = allProducts.find(
product => product.productId === rowInfo.productId
).packages;
return dropDownOptions;
};
在您的示例中,您将传递对options
函数的引用,而不是该函数返回的值。
现在,如果你使用console.log(props.options)
,你会看到一个函数。。。。但是你需要一个数组。
所以试试这个:
<SelectBox
options={getDropdownOptions()}
...
/>
或者,不使用函数,只需设置一个变量:
const dropDownOptions = allProducts.find(
product => product.productId === rowInfo.productId
).packages;
return dropDownOptions;
return (
<SelectBox
options={dropDownOptions}
...
/>
)