【发布时间】:2021-01-26 15:11:47
【问题描述】:
我有两个选择菜单。一种显示项目类型的名称。它有两种类型 item1 和 item2。另一个选择菜单列出了所选类型 item1 或 item2 的项目。
下面是我的代码,
const App = () => {
const { item1Data } = fetchItem1Data;
const { item2Data } = fetchItem2Data;
const allData = (any)[] = [
...item1Data,
...item2Data,
]; //clubs both item1 and item2 data
const { item1typeData } = useQuery(item1typeData, {
variables: {
itemType: 'item1',
},
notifyOnNetworkStatusChange: true,
fetchPolicy: 'network-only',
});
const { item2typeData } = useQuery(item2type, {
variables: {
itemType: 'item2',
},
notifyOnNetworkStatusChange: true,
fetchPolicy: 'network-only',
});
const typesData: any = allData.map((data: any) => {
return {
label: data.name,
value: data.id,
};
});
const itemData = [];
return (
<Select
onChange={(option: SelectOption) =>
form.setFieldValue(field.name, option.value)
}
options={typesData}
placeholder="Select"
value={typesData.filter(option => option.value === field.value)}
/>
<Select
options={itemData}
placeholder="Select items"
value={}
onChange={}
/>
正如您在上面的代码中看到的,第二个选择菜单没有选项。我想根据在第一个选择菜单中选择的类型为该菜单提供选项。
所以基本上当用户从第一个选择菜单中选择一个选项时,我们需要检查它的类型。
如果选择的类型是 item1,那么我需要将 itemData 设置为 item1typeData。 如果选择的类型是 item2,那么我需要将 itemData 设置为 item2typeData。 否则 [];
同样对于 allData,当组合 item1Data 和 item2Data 时,我需要映射每个项目并添加它的类型,比如 item1Data 的“item1”和“item2Data”的“item2”。
我该怎么做。有人可以帮我用 react 和 typescript 来做吗?
【问题讨论】:
标签: reactjs typescript