나는 React (1 weeks : P)를 처음 사용합니다. 나는 검색 용어를 기반으로 API를 때리는 앱을 가지고있다. 이러한 결과에서 사용자는 결과에서 항목을 즐겨 찾기에 추가 할 수 있습니다. 즐겨 찾기 링크를 클릭하면 올바른 구성 요소로 이동하고 URL에이 변경 사항이 반영됩니다. 그러나 항상 정적으로 존재하는 측면 탐색 바에서 새로운 검색어를 입력 할 때 올바른 구성 요소의 수정 정보가 표시되지만 URL은 변경되지 않습니다. 그것은 여전히 http://localhost:3000/favorites
이라고 말하고 어디에 이이되어야합니까 http://localhost:3000
이어야합니다. 추측을 위험에 빠뜨릴 필요가 있다고 생각되는 것이 더 있다면 알려주십시오. 라우트 :반응 라우터가 URL을 변경하지 않음
return(
<BrowserRouter >
<div className='routes'>
<Route path='/' component={App}/>
<Route path='/favorites' component={Favorites}/>
</div>
</BrowserRouter>
) }
SearchBox
구성 요소 :
return(
<form className="search-box" >
<input type="text" placeholder="Search.." name="search" autoComplete='off'/>
<button className="fa fa-search" type="submit" onClick={this.handleSearch.bind(this)}>
</button>
</form>
)
그리고 링크가있는 SideNav
구성 요소 :
return(
<nav className='naviagtion'>
<ul className='mainmenu'>
<div className='img-logout'>
<img src={this.props.info.image} alt='Avatar' />
<Logout handleLogout={this.handleLogout.bind(this)}/>
</div>
<SearchBox search={this.searchHandler.bind(this)}/>
<li>
<a href="/">home</a>
</li>
<li>
<a href="/favorites">favorites</a>
</li>
<li>
<a href="">playlists</a>
<ul className='submenu'>
<li>
<a href="">
<strong>list of lists</strong>
</a>
</li>
</ul>
</li>
<li>
<a href="">friends</a>
</li>
</ul>
</nav>
)
내가 변화하는 URL의 정보를 많이 본 적이 있지만, 렌더링하지 않는 컴퍼넌트 그건 내 문제가 아니야. 그런 다음 구성 요소가 올바르게 렌더링되지만 url은이를 반영하지 않습니다.
편집 : 사이드 바는 홈 구성 요소에서 렌더링되는 위치 여기
입니다. 여기
<div>
<SideBar
info={this.state.info}
logout={this.handleLogout.bind(this)}
search={this.handleSearch.bind(this)}
/>
<Main videos={this.state.videos}/>
</div>
그리고는 도움이되는 App.js
<div className='App'>
{localStorage.userData === undefined
? this.renderLogin()
: <Home logout={this.logout.bind(this)} deets=
{localStorage.userData}/>}
</div>
그랬어! 고맙습니다! 내 사이드 바가 사라졌다. 그렇게 큰 거래가 아니며 아마 그것을 해결할 수 있습니다. 그러나 그것에 대한 조언이 있습니까? 경로에 '/'구성 요소로 넣어야합니까? –
표시되는 링크는 어디에 있습니까? 그들은 사이드 바의 일부입니까? –
예. 내 '홈'구성 요소에서 사이드 바 및 주요 구성 요소를 렌더링합니다. Main은 검색 결과를 렌더링하는 구성 요소입니다. –