Javascript Redux中基于操作负载的某些值的动态缓存命名-React Native
我知道在redux reducer中创建缓存很容易,如下所示:Javascript Redux中基于操作负载的某些值的动态缓存命名-React Native,javascript,react-native,redux,Javascript,React Native,Redux,我知道在redux reducer中创建缓存很容易,如下所示: switch (action.type){ case CACHE_DATA: return {...state, cachedData: action.payload}; } switch (action.type){ case CACHE_DATA: { var cacheName = "cachedData_" + action.payload.SOME_ID
switch (action.type){
case CACHE_DATA:
return {...state, cachedData: action.payload};
}
switch (action.type){
case CACHE_DATA:
{
var cacheName = "cachedData_" + action.payload.SOME_ID;
return {...state, cacheName : action.payload};
}
}
switch (action.type){
case CACHE_DATA:
{
var cacheName = "cachedData_" + action.payload.SOME_ID;
return {...state, [cacheName] : action.payload};
}
}
其中CACHE_DATA是我的操作的名称。而cachedData是redux缓存的硬编码名称
但我想知道是否可以使用action payload中的一些值来动态命名缓存,而不是使用硬编码的名称,如“cachedData”
可能是这样的:
switch (action.type){
case CACHE_DATA:
return {...state, cachedData: action.payload};
}
switch (action.type){
case CACHE_DATA:
{
var cacheName = "cachedData_" + action.payload.SOME_ID;
return {...state, cacheName : action.payload};
}
}
switch (action.type){
case CACHE_DATA:
{
var cacheName = "cachedData_" + action.payload.SOME_ID;
return {...state, [cacheName] : action.payload};
}
}
干杯 发布这篇文章后,我在这里找到了答案: 所以可以这样做:
switch (action.type){
case CACHE_DATA:
return {...state, cachedData: action.payload};
}
switch (action.type){
case CACHE_DATA:
{
var cacheName = "cachedData_" + action.payload.SOME_ID;
return {...state, cacheName : action.payload};
}
}
switch (action.type){
case CACHE_DATA:
{
var cacheName = "cachedData_" + action.payload.SOME_ID;
return {...state, [cacheName] : action.payload};
}
}
轻松点