如何将字符串作为单个值而不是拆分值传递

How to pass in a string as a single value and not a split value

我有一个名为 div 的 onClick 函数,它调用一个调度函数,并将目标值传递给它(即 e.target.value)。传入的值存储在数组中。

但是,我注意到发生了一些奇怪的事情。在传入值的数组中,第一个值存储错误。

例如,如果我传入 'hello',在数组中,它存储为 ['h','e','l','l','o']。这只会发生在传入的第一个值上,其余的都正确存储。

这是我的函数,调用 onClick 的函数;

const handleSelectedFilters = (e: any) => {
  dispatch(
    actions.storeData({
      name: data.name,
      values: e.target.value,
    }),
  );
}

这是我的 reducer 文件中的动作;

export interface DataState {
  name: string,
  values: Array<string>,
}

export interface FilterState {
  storedData: DataState[];
}

applyData: (
      state,
      action: PayloadAction<DataState>,
    ) => {
        state.storedData.push({
          name: action.payload.name,
          values: [...action.payload.values],
        });
    },

请提供任何帮助,因为我真的被困住了。我需要做哪些不同的事情?

您正在将 values 存储为 values: [...action.payload.values]

如果你这样做:

var text: String = "hello":
console.log([...text]);

您将看到放置在数组中的展开运算符如何将您的字符串拆分为数组。

解决方案

保存为values: action.payload.values

即可