您是否能够将React钩子const命名为已经定义的const?

时间:2019-05-23 22:40:08

标签: javascript reactjs

我正在尝试将我的提供者商店道具分配给我的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相同的标识符,但是我们不能使用钩子来做到这一点吗?感谢您的帮助

2 个答案:

答案 0 :(得分:0)

由于它们是同一功能的一部分,因此它们位于相同的名称空间中,因此,您不能用相同的名称命名它们。

答案 1 :(得分:0)

如果它们都在同一块({})上声明,则否,因为const(和let)为block scoped

如果它们“生活”在另一个块上,则可以:

function foo() {
  {
    const x = 1;
  }
  const x = 2
  console.log('x is ', x)
}

foo()