Javascript react select onChange事件不使用道具渲染
我正在使用select react库-> 我已设法将选项映射到itemList中需要的各个项目。下拉列表确实注册了所选选项,但是我的最终目标是让条形图呈现所选选项的正确数据Javascript react select onChange事件不使用道具渲染,javascript,reactjs,react-select,Javascript,Reactjs,React Select,我正在使用select react库-> 我已设法将选项映射到itemList中需要的各个项目。下拉列表确实注册了所选选项,但是我的最终目标是让条形图呈现所选选项的正确数据 /** * Produces a filter list for item sales cards * @param {*} props * @returns the filter list of item names along with their ids */ export const ItemSelecti
/**
* Produces a filter list for item sales cards
* @param {*} props
* @returns the filter list of item names along with their ids
*/
export const ItemSelection = (props) => {
const { onChangeValue, itemList } = props;
if (itemList.length === 0) return <></>;
return (
<UncontrolledDropdown>
<Select
options={itemList.map((item) => {
return {
label: item.name,
value: item,
key: item.itemID,
};
})}
onChange={(item)=>onChangeValue(item)}
placeholder="ITEM"
/>
</UncontrolledDropdown>
);
};
此处正在使用itemSelection:
const [itemID = '1', setItemID] = useState('1');
const [itemName = '', setItemName] = useState('');
const [itemListID = [], setItemListID] = useState([]);
<ItemSelection
onChangeValue={(item) => {
setItemID(item.itemID);
setItemName(item.name);
}}
itemList={itemListID}
/>
onChangeValue是将所选选项注册到条形图的值。是否仍要映射onChangeValue?这取决于您实际期望从使用ItemSelection的父元素得到的参数。这就是说,Select似乎还采用了一个函数,该函数采用字符串类型的操作,并将选项值作为第二个参数。选定的值将出现在第二个参数中 如果您所关心的只是价值,那么下面代码的内容就是您所需要的。注意,您将获得传递给onChangeValue的所选字符串值,我认为这是您想要的,而无需查看来自祖先组件的函数定义 更新: 选择代码可以将整个选项对象作为第二个参数 导出常量ItemSelection=props=>{ const{onChangeValue,itemList}=props; 如果itemList.length==0,则返回null; 回来 { 标签:item.name, value:item.name,//注意此处代码的更改;否则它将是一个对象 关键字:item.itemID, }} onChange={item=>onChangeValueitem} 占位符=项目 /> ; }; 在父组件中 //请注意此处的更改,我在此处删除了作业 const[itemID,setItemID]=useState'1'; const[itemName,setItemName]=useState; const[itemListID,setItemListID]=useState[]; { setItemIDoption.key; setItemNameoption.value; }} itemList={itemListID} />
ItemSelection实际上是在另一个组件中获取其状态集。我已经用相关代码修改了我的问题!所以我上面提到的仍然是相关的,但是您的父级期望某种item类型,但是您在子组件的onChange中得到了一个选项类型。也就是说,代码可以通过几种方式修复,我将尝试解决这些问题。另外,您在父级尝试如何处理itemListID?此外,条形图需要哪些值,itemListID?错误在于您在此处的定义const[itemListID=[],setItemListID]=useState[];。您尝试访问.map代码中的数组数组。这个问题开始较少涉及状态,更多涉及整体代码。非常感谢!!!我将value:item更改为value:item.name及其最终传递的项。