javascript - useHistory - 无法读取未定义的属性 'push'

标签 javascript reactjs react-router-dom

当按下主页按钮时,我想将其重定向到主页“/”。但我收到这个错误。我能做些什么 ? :

import { Route, useHistory } from 'react-router-dom/cjs/react-router-dom.min';
const history = useHistory();

const homeButtonOnClickHandler = () =>{
    history.push("/");
}
  
<Router>
    <Header homeButtonOnClickHandler={homeButtonOnClickHandler}/>
    <Switch>
        <Route path='/result'>
            <Result
                ingredients={ingredients}
                total={() => hesapla()} 
            />
        </Route>

        <Route path='/'>
            <Home
                ingredients={ingredients} 
                total={() => calculate()} 
                ingredientAdd={(i) => ingredientAdd(i)}
                ingredientRemove={(i) => ingredientRemove(i)}
                selectedIngredients={ingredients}
                isOrder={number}
            />
        </Route>
    </Switch>
</Router>

最佳答案

您正在尝试在 Router 之外使用 history Hook 。将您的函数写入 Header 组件中。

Header组件中尝试这个

const history = useHistory();

const homeButtonOnClickHandler = () =>{
            history.push('/');
}

关于javascript - useHistory - 无法读取未定义的属性 'push',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64701116/

相关文章:

javascript - 如何在 WKWebView 中检测 history.pushstate

javascript - 在文本区域底部添加空间

reactjs - React组件单元测试的正确方法

typescript - 来自react-router-dom的具有自定义属性的RouteComponentProps

javascript - React Router Dom v6 HashRouter basename 不工作

javascript - 更改路径时,React 组件不会被删除

javascript - 将 src 属性添加到 &lt;script&gt;

javascript - 如何在 Python 中检测本地 HTML 文件是否已被 Web 浏览器打开

javascript - React 不会将 props 传递给 API 链接

reactjs - 如何使用react-bootstrap调用单选按钮的onChange?