저는 처음으로 React 프로젝트를 진행 중이며이 상황을 해결하는 방법에 조금 얽혀 있습니다.경로에 따라 반응 구성 요소 속성이 전환됩니다.
구성 요소는 여러 개의 다른 테마를 지원하며 표시되는 페이지에 따라 전환 할 수 있어야합니다.
export default class App extends React.Component {
render() {
return (
<Router>
<div>
<Header theme='light' />
<Switch>
<Route exact path='/' />
<Route exact path='/about' component={About} />
<Route exact path='/clients' component={Clients} />
<Route exact path='/services' component={Services} />
</Switch>
</div>
</Router>
);
}
}
가 Header
구성 요소가 theme
특성 (light
중 하나 dark
및 solid
)를받을 수 있습니다 : 여기 내 루트 구성 요소입니다. 이 속성을 경로로 렌더링 된 구성 요소 내부에서 변경하고 싶습니다.
내 생각은 App
구성 요소에 setHeaderTheme
메서드를 추가하고이 함수를 구성 요소에 전달하지만 a) 경로를 통해 구성 요소에 추가 속성을 전달하는 방법과 b) 이것이 짝수 인 경우 행동의 최선의 길.
조언에 대한 감사의 모습이 바로
this.props.urlVariableHere
으로 URL 매개 변수에 액세스 할 수 있습니다. 신속한 후속 질문을 할 수 있습니까? 클라이언트 구성 요소 내에 헤더 테마를 설정하는 가장 좋은 곳은 어디입니까? 명령이 수명주기 콜백에 속해 있습니까? –
처음에는 헤더에 라우팅 된 구성 요소에서 변경할 기본 구성이있는 것으로 보입니다. 클라이언트와 같은 라우팅 된 구성 요소에 넣으면 클라이언트 구성 요소의 상태를 변경하거나 종속성을 가지지 않으므로 componentWillMount()와 같은 초기 lifeCycle에서 헤더를 변경할 수 있습니다. – dpetrini