相关疑难解决方法(0)

由于严格模式,我的 React 组件渲染了两次

我的 React 组件渲染了两次。所以,我决定逐行调试,问题就在这里

 if ( workInProgress.mode & StrictMode) {
        instance.render();
      }
Run Code Online (Sandbox Code Playgroud)

React-dom.development.js

是因为严格模式吗?我可以禁用它吗?什么是严格模式?我需要吗?

reactjs react-dom

18
推荐指数
4
解决办法
8598
查看次数

反应路由器组件安装两次

我有以下几点:

const RoutedApp = ({ signedIn }) => {
  return (
    <BrowserRouter>
      <Switch>
        <Route path={routes.HANDLE_SIGN_IN} render={props => <HandleSignIn {...props} />} />
        <PublicRoute exact path={routes.LANDING} signedIn={signedIn} component={LandingContainer} />
        <PrivateRoute exact path={routes.HOME} signedIn={signedIn} component={HomeContainer} />
        <Route component={PageNotFoundContainer} />
      </Switch>
    </BrowserRouter>
  );
};
Run Code Online (Sandbox Code Playgroud)

问题出在HandleSignInContainer.

该组件基本上只是让用户登录并将他们发送到主页location.push('/home')

但是,我遇到了HandleSignInContainer安装两次的问题。

文档提到,在使用Routerender道具应该可以解决这个问题,但后来这个SO答案中提到,这将不是由HOC创建的组件工作。

既然HandleSignIn是用 React Redux's 包裹的connect(),我怎样才能阻止这个组件挂载两次?

更新 1

尝试包装非连接组件:

const WrappedHandleSignInContainer = props => (
  <div>
    <HandleSignInContainer {...props} />
  </div>
);
Run Code Online (Sandbox Code Playgroud)

更新 …

reactjs react-router

6
推荐指数
0
解决办法
2330
查看次数

标签 统计

reactjs ×2

react-dom ×1

react-router ×1