未捕获的错误:不变失败:您不应该在 之外使用 我正在使用React和Typescript编写chrome扩展名。我决定使用MemoryRouter。我收到类似Uncaught Error: Invariant failed: You should not use <withRouter(time_entry_edit_component_TimeEntryEditComponent) /> outside a <Router>.的错误这是我的路由代码: import {MemoryRouter as Router, Route, Switch} from 'react-router-dom'; import { TimeEntryEditComponent } from './components/time-entry-edit.component'; <Router> <Switch> <StoreContext.Provider value={store}> <Route exact path="/" component={HomePageComponent} /> <Route path="/time-entry/:id" component={TimeEntryEditComponent} /> <Route path="/issue-edit/:id" component={IssueEditComponent} /> </StoreContext.Provider> </Switch> </Router> 这是我连接TimeEnrtyEditComponent的方式: const wrappedComponent = withRouter<TimeEntryEditProps, any>(TimeEntryEditComponent); export { wrappedComponent as TimeEntryEditComponent }; 感谢前进! 我正在使用React和Typescript编写chrome扩展名。我决定使用MemoryRouter。而且我收到类似未捕获错误的错误:不变失败:您不应该使用 ] [ 嗯,我的问题是,在我的上一个功能中是: ReactDOM.unmountComponentAtNode(document.getElementById("mount")); ReactDOM.render( <TimeEntryEditComponent changeMode={this.changeMode.bind(this)} timeEntry={this.state.timeEntry} />, document.getElementById("mount") 这就是为什么我用新组件替换所有dom,导致错误的原因 您不需要withRouter 作为路由器的直接子代,您已经传递了所有路由器方法。 只需跳过Router并检查组件的道具,您应该会看到所需的一切。

问题描述 投票:1回答:2

我正在使用React和Typescript编写chrome扩展名。我决定使用MemoryRouter。我收到类似Uncaught Error: Invariant failed: You should not use <withRouter(time_entry_edit_component_TimeEntryEditComponent) /> outside a <Router>.的错误这是我的路由代码:

    import {MemoryRouter as Router, Route, Switch} from 'react-router-dom';
    import { TimeEntryEditComponent } from './components/time-entry-edit.component';
     <Router>
            <Switch>
              <StoreContext.Provider value={store}>
                <Route exact path="/" component={HomePageComponent} />
                <Route path="/time-entry/:id" component={TimeEntryEditComponent} />
                <Route path="/issue-edit/:id" component={IssueEditComponent} />
              </StoreContext.Provider>
            </Switch>
          </Router>

这是我连接TimeEnrtyEditComponent的方式:

const wrappedComponent = withRouter<TimeEntryEditProps, any>(TimeEntryEditComponent);
export { wrappedComponent as TimeEntryEditComponent  };

感谢前进!

reactjs typescript react-router-dom
2个回答
0
投票
这就是为什么我用新组件替换所有dom,导致错误的原因

0
投票
© www.soinside.com 2019 - 2024. All rights reserved.