我正在尝试将我的提供者商店道具分配给我的Routes挂钩商店,但是我还在函数中创建了商店,因此存在重复变量的问题。有没有办法用与已定义的const相同的const名称声明一个钩子?
const store = createStore(reducers, applyMiddleware(thunk));
sessionService.initSessionService(store);
store.subscribe(() => {
console.log('store.getState()', store.getState());
});
const [store] = useState();
return (
<Provider store={store}>
<BrowserRouter className="router">
定义const [store] = useState();引发以下错误: 标识符“商店”已经声明。
您可以在Class中定义一个状态,并使它具有与const相同的标识符,但是我们不能使用钩子来做到这一点吗?感谢您的帮助
答案 0 :(得分:0)
由于它们是同一功能的一部分,因此它们位于相同的名称空间中,因此,您不能用相同的名称命名它们。
答案 1 :(得分:0)
如果它们都在同一块({}
)上声明,则否,因为const
(和let
)为block scoped。
如果它们“生活”在另一个块上,则可以:
function foo() {
{
const x = 1;
}
const x = 2
console.log('x is ', x)
}
foo()