这是mye代码:
import { combineReducers } from 'redux';
import { postReducers } from './postReducers';
import { stationsReducer } from './TrackCircuitSensorDataFormReducers/StationsReducer';
import { trackCircuitReducer } from './TrackCircuitSensorDataFormReducers/TrackCircuitReducer';
export const rootReducer = combineReducers({
posts: postReducers,
stationsReducer: stationsReducer,
trackCircuitReducer, trackCircuitReducer
});
export type IApplicationState = ReturnType<typeof rootReducer>;
该行:
trackCircuitReducer, trackCircuitReducer
给我:
(属性)trackCircuitReducer:减速器
对象文字不能具有相同名称的多个属性 在严格模式下。ts(1117)
重复标识符'trackCircuitReducer'.ts(2300)
我该如何解决?
答案 0 :(得分:2)
问题在于您正在使用逗号而不是两个点 trackCircuitReducer,trackCircuitReducer
使用此:
trackCircuitReducer:trackCircuitReducer
答案 1 :(得分:0)
在对象中,所有键之后应带有:
以传递值。
更改
export const rootReducer = combineReducers({
posts: postReducers,
stationsReducer: stationsReducer,
trackCircuitReducer, trackCircuitReducer
});
到
export const rootReducer = combineReducers({
posts: postReducers,
stationsReducer: stationsReducer,
trackCircuitReducer: trackCircuitReducer
});
答案 2 :(得分:0)
使用错字,
而不是:
,就可以使用shorthand property names。
因此,您的对象文字等于:
{
posts: postReducers,
stationsReducer: stationsReducer,
trackCircuitReducer: trackCircuitReducer,
trackCircuitReducer: trackCircuitReducer,
}
在Gecko 34之前的严格模式下,在对象文字中命名的所有属性都必须是唯一的。普通代码可能重复属性名称,最后一个确定属性的值。但是由于只有最后一个函数会执行任何操作,因此如果修改代码以更改属性值(而不是通过更改最后一个实例),则复制只是错误的向量。属性名称重复是严格模式下的语法错误。
(注意:ECMAScript 2015不再是这种情况)
您可以将文字简化为:
export const rootReducer = combineReducers({
posts: postReducers,
stationsReducer,
trackCircuitReducer
})