javascript - 在数组中添加新数据
问题描述
我有一个应用程序,我必须使用选择标签从 UI 中选择数据。我有 3 个select
具有不同类型数据的标签。我还连接了 redux 来管理应用程序中的状态。这是我的组件:
const MyComponent = ({ array, keyword }) => {
const selector = useSelector(selector => selector);
const dispatch = useDispatch();
function handleChange(value) {
const details = {
[keyword]: value
};
dispatch(getData(details));
}
console.log(selector);
return (
<Select
mode="multiple"
placeholder="select"
style={{ width: 120 }}
onChange={handleChange}
>
{array.map((i, k) => {
return (
<Option key={k} value={i}>
{i}
</Option>
);
})}
</Select>
);
};
我在这里存储我的数据:
const initialState = {
data: []
};
我接下来要做:
1. 当我从 UI 中选择数据时,我想创建下一个对象:
[
{car: ['car', 'car', 'car']} // the length depends by how many cars i select
{objects: ['object', 'object']} // length depends by how many objects i select
{color: ['color', 'color']} //// the length depends by how many colors i select
]
因此,上面每个数组的长度将取决于用户选择的元素数量。此外,如果用户只选择car
元素,则数组应如下所示:
[
{car: ['car', 'car', 'car']}
{objects: ['']}
{color: ['']}
]
另外,如果用户unselect
要从 Select 中选择一个元素,则该数组应根据用户操作而更改,并且应从某个数组中删除一个元素,这取决于删除了多少用户。
现在,如果用户从每个 Select 中仅选择一个元素,并且如果他选择多个元素,则代码可以工作,则上述想法不起作用。另外,现在如果用户unselect
从他选择的选项中选择一个元素,数组会增加,但不会减少。
问题:如何实现上述想法?
演示 https://codesandbox.io/s/basic-usage-ant-design-demo-t30gw?file=/SelectComponent.js:213-792
解决方案
推荐阅读
- windows - 如何将文件夹中的每个 X 子文件夹压缩为单独的 rar 文件
- excel - 使用“分页”更改网站页面的宏
- python - 如何获取json文件中特定低级键的最高值的顶级键?
- python - np.polyfit 不适合数据
- javascript - 仅当其他类处于活动状态时才删除具有特定类的元素
- javascript - 我想从数组中获取最后 6 个对象
- scala - 如何按照顺序对 RDD 进行分区?
- amazon-s3 - 从 s3 静态 Web 服务器存储桶创建 proxy_pass 到实例文档
- math - 我如何从每个顶点的并发线创建的六个部分中的三个部分的区域中找到三角形的总面积?
- php - 在 SilverStripe 中获取 Page DataObject 的父页面