如何将字符串作为单个值而不是拆分值传递
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
即可
我有一个名为 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