Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在createSlice reducer prepare函数中创建实体ID_Javascript_Redux_Immutability_Redux Toolkit - Fatal编程技术网

Javascript 如何在createSlice reducer prepare函数中创建实体ID

Javascript 如何在createSlice reducer prepare函数中创建实体ID,javascript,redux,immutability,redux-toolkit,Javascript,Redux,Immutability,Redux Toolkit,我在redux工具包的createSlice函数中包含的prepare回调函数中遇到了一些问题 我正在尝试使用prepare回调将唯一ID添加到我的操作有效负载中 报告说: 如果需要通过prepare回调自定义action creator有效负载值的创建,则reducers参数对象的相应字段的值应为对象而不是函数。此对象必须包含两个属性:reducer和prepare。reducer字段的值应该是case reducer函数,而prepare字段的值应该是prepare回调函数 下面是我正在使用

我在redux工具包的
createSlice
函数中包含的
prepare
回调函数中遇到了一些问题

我正在尝试使用
prepare
回调将唯一ID添加到我的操作有效负载中

报告说:

如果需要通过prepare回调自定义action creator有效负载值的创建,则reducers参数对象的相应字段的值应为对象而不是函数。此对象必须包含两个属性:reducer和prepare。reducer字段的值应该是case reducer函数,而prepare字段的值应该是prepare回调函数

下面是我正在使用的代码(用TypeScript编写):

结果状态:

myEntity: {
    ids: {
        0:"test"
    },
    entities: {
        "test": {
            myPayloadTrait: 100
            id: "test"
        }
    }
}
为什么在有效负载传递到减速器之前,我的prepare回调不覆盖
“test”
id?任何帮助或指导都将不胜感激。

prepare回调必须返回一个类似于
{payload?,meta?,error?}
的对象。您的代码当前正在直接返回预期的有效负载

将其更改为:

addEntity:{
减速器:myEntityAdapter.addOne,
准备:(有效载荷)=>({
有效载荷:{
…有效载荷,
id:uuidv4()
}
}),
}
{
 type: 'myEntity/addEntity',
 payload: {myPayloadTrait: 100, id: 'test'} // Expected behavior: this id should be overwritten in the prepare callback
}
myEntity: {
    ids: {
        0:"test"
    },
    entities: {
        "test": {
            myPayloadTrait: 100
            id: "test"
        }
    }
}