0

我正在为我的应用程序使用 React-typescript。我的目标是获取数据并显示到我自己的自定义复选框。我可以映射数据,但我是从我的价值中得到的。我确信它是一个打字稿错误。这是我得到的错误:Type 'IPayloadData' is not assignable to type 'string'. TS2322

这是我的类型界面

export interface IPayloadData {
  label?: string;
  value?: string;
}

export interface IData {
  uuid?: string;
  name?: string;
  description?: string;
  tasks?: IPayloadData[];
}

这是我从 redux 商店中提取的数据

   const tasks = useSelector((state: IRootState) => state.properties.details);
    const allTasks = tasks?.[propertyUUID]?.data?.tasks?.data;

这是我要在其中显示数据的自定义复选框

<CheckBoxGroup
            id="issueListPropertiesPicker"
            name="issueListPropertiesPicker"
            choices={allTasks?.map((i: any) => ({
              "label": i.name,
              "value": i.uuid
            }))}
            values={values?.tasks || []} // IN HERE I am getting typescript error
            onChange={(e) => handleChange({ "tasks": e })}
          />
4

1 回答 1

0

当不为空时,在属性中控制的下拉选择values被设置为数组IPayloadData,而不是字符串数组。tasks

我想您正在尝试uuid从 s 传递 s列表tasks,如果有的话,如下所示:

更改的行有注释: // **HERE IS THE CHANGE

<CheckBoxGroup
   id="issueListPropertiesPicker"
   name="issueListPropertiesPicker"
   choices={allTasks?.map((i: any) => ({
      "label": i.name,
      "value": i.uuid
   }))}
   values={tasks?.map((dta: IData) => dta.uuid)  || []} // **HERE IS THE CHANGE
   onChange={(e) => handleChange({ "tasks": e })}
/>
于 2020-06-05T04:41:48.493 回答