Как передать состояние с помощью ссылки на родительский маршрут и как получить к нему доступ - PullRequest
0 голосов
/ 16 мая 2019

Я попытался передать данные о состоянии с помощью Link, и я уже прочитал статью с этой проблемой, но она не работает с моим кодом. и я все еще учусь о реакции, и я делаю этот проект для личного

Я использую «this.props.location.state» в родительском маршруте, но он не определен. Можете ли вы помочь мне найти решение этой проблемы.

// this My Apps (Main)

<Router>
  <div className="App">
     <Navbar userData={this.state.userData}/>
        <div>
           <Switch>
             <Route exact path={'/'} component={home}/>
             <Route path={'/Profile'} component={profile}/>
             <Route path={'/Explore'} component={explore}/>
           </Switch>
       </div>
    </div>
 </Router>

// это в компоненте Navbar и я использую Link

 <Link
     to={{
        pathname: "/Profile",
        state: { userId: this.state.userId }
        }}
  >
     <img alt=" " src={profile}/>
</Link>

когда я console.log (this.props.location.state) в приложениях всегда неопределен, и я попробовал эту концепцию передачи данных Link в «профиле» и получил тот же результат

Не могли бы вы дать объяснение этой проблеме? Спасибо

1 Ответ

0 голосов
/ 16 мая 2019

вы не можете передать state с <Link />.

// In Route
 <Route path='/profile/:userId' component={Profile} />

// Profile.js
     <Link to={`/Profile/${this.state.userId}`}>
         <img alt=" " src={profile}/>
    </Link>
And read in 
  let userId = parseInt(props.match.params.userId, 10);

Проверьте это https://knowbody.github.io/react-router-docs/api/Link.html

...