亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

ReactJS TypeError:無法讀取未定義的屬性“歷史”

ReactJS TypeError:無法讀取未定義的屬性“歷史”

料青山看我應如是 2022-06-09 16:40:08
所以我嘗試做一個“服務”來幫助我完成一些小任務,我的 NavigationService.js 具有以下功能:    redirectView = (view) => {        this.props.history.push(`/${view}`)    }然后我得到了我的 Welcome.jsx,它有:<BtnRectangularBorder>    <BtnRectangular className="battle-shonen-color btn-rectangular-md-size btn-rectangular-primary" title="Cards Overview" onClick={NavigationService.redirectView("/cards-overview")} /></BtnRectangularBorder>所以現在在我的 .js 文件中,它給了我一個錯誤:“TypeError: Cannot read property 'history' of undefined”,我應該做 .js 文件一個組件或任何東西,因為我不承認歷史
查看完整描述

1 回答

?
互換的青春

TA貢獻1797條經驗 獲得超6個贊

我猜你正在使用React Router作為你的路由解決方案。我不確定在它周圍包裝一個實用函數會有多大用處,因為它已經是一個實用函數。但是,如果您想這樣做,則需要將當前history對象公開給函數。像這樣的東西:


const NavigationService = {

  redirectView = (history, view) => {

    history.push(`/${view}`)

  }

}

const MyComponent = withRouter(({ history }) => (

  <BtnRectangularBorder>

    <BtnRectangular 

      className="battle-shonen-color btn-rectangular-md-size btn-rectangular-primary" 

      title="Cards Overview" 

      onClick={NavigationService.redirectView(history, "/cards-overview")} 

    />

  </BtnRectangularBorder>

));

通常我只是在實用程序中包裝東西,但老實說,我不確定在這種情況下它會給你帶來什么。希望有幫助。


查看完整回答
反對 回復 2022-06-09
  • 1 回答
  • 0 關注
  • 190 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號