나는 reactjs 및 react-mdl을 사용하여 빌드 된 앱을 보유하고 있습니다. 탭 쇼 정보, 에피소드 및 캐스트가 있습니다. 에피소드를 클릭하면 John의 Jane이 다른 텍스트로 변경되어야하므로 55 개의 에피소드와 탭 아래에있는 다른 콘텐츠가 변경됩니다. 내가 코딩 한 코드는 내가 원한대로 작동하지만 올바른 방법이 아니며 버그가 있다고 생각한다. 나는 내 잘못을 알고 있지만 어떻게 해결할 수 있는지 모른다.console.log를 제거하면 오류가 발생합니다
class MovieDetailView extends Component{
constructor(props){
super(props);
this.state = {
movie:[ ],
activeTab:1
}
}
render(){
console.log("Tab ID: ", this.state.activeTab);
let movie = this.state.movie;
const mainCastJoin = _.join(movie.mainCast, ', ');
if(!this.state.movie){
return(
<p>Loading</p>
);
}
else{
return(
<div className="demo-big-content">
<Layout fixedHeader fixedTabs>
<Header>
{this.state.activeTab >= 0 ? <HeaderComponent movie={this.state.movie} activeTab={this.state.activeTab}/> : ' '}
<HeaderTabs ripple activeTab={this.state.activeTab} onChange={(tabId) => this.setState({ activeTab: tabId })}>
<Tab>SHOW INFO</Tab>
<Tab>EPISODES</Tab>
<Tab>CAST</Tab>
</HeaderTabs>
<Link to="/"><i className="material-icons arrow_back">arrow_back</i></Link>
</Header>
<Content>
<div className="page-content">{this.state.activeTab >=0 ? <MovieInfo movie={this.state.movie} activeTab={this.state.activeTab} /> : ''}</div>
</Content>
</Layout>
</div>
);
}
}
}
export default MovieDetailView;
HeaderComponent.js
const HeaderComponent = ({activeTab, movie}) => {
const mainCastJoin = _.join(movie.mainCast, ', ');
const renderHeader =
console.log('kk');
if(activeTab === 0){
return(
<div>
<HeaderRow title={movie.title}>
<IconButton name="more_vert" id="demo-menu-lower-left" />
</HeaderRow>
<HeaderRow>
<i className="material-icons">date_range</i> {mainCastJoin}
</HeaderRow>
<HeaderRow>
<i className="material-icons">history</i> 55 episodes/ 4 seasons/ 2013 -
</HeaderRow>
</div>
);
}
if(activeTab === 1){
return(
<div>
<HeaderRow title={movie.title}>
<IconButton name="more_vert" id="demo-menu-lower-left" />
</HeaderRow>
<HeaderRow>
<i className="material-icons">date_range</i> episode
</HeaderRow>
<HeaderRow>
<i className="material-icons">history</i> 55 episodes/ 4 seasons/ 2013 -
</HeaderRow>
</div>
)
}
if(activeTab === 2){
return(
<div>
<HeaderRow title={movie.title}>
<IconButton name="more_vert" id="demo-menu-lower-left" />
</HeaderRow>
<HeaderRow>
<i className="material-icons">date_range</i> main cast
</HeaderRow>
<HeaderRow>
<i className="material-icons">history</i> 55 episodes/ 4 seasons/ 2013 -
</HeaderRow>
</div>
)
}
return(
<div>{renderHeader}</div>
)
}
export default HeaderComponent;
이 코드가 작동하지만 난 다음을 console.log를 제거하면 내가
Error in ./src/component/HeaderComponent.js
Syntax error: Unexpected token (10:4)
const renderHeader =
// console.log('kk');
if(activeTab === 0){
^
return(
<div>
<HeaderRow title={movie.title}>
내가이 문제를 어떻게 해결할 수있는 오류가? 왜 오류가 발생합니까? 그런 문제를 해결하는 효율적인 방법은 무엇입니까?
UPDATE
let renderHeader = () => ({
return(
if(activeTab === 0){
return(
<div>
<HeaderRow title={movie.title}>
<IconButton name="more_vert" id="demo-menu-lower-left" />
</HeaderRow>
<HeaderRow>
<i className="material-icons">date_range</i> {mainCastJoin}
</HeaderRow>
<HeaderRow>
<i className="material-icons">history</i> 55 episodes/ 4 seasons/ 2013 -
</HeaderRow>
</div>
);
}
if(activeTab === 1){
return(
<div>
<HeaderRow title={movie.title}>
<IconButton name="more_vert" id="demo-menu-lower-left" />
</HeaderRow>
<HeaderRow>
<i className="material-icons">date_range</i> episode
</HeaderRow>
<HeaderRow>
<i className="material-icons">history</i> 55 episodes/ 4 seasons/ 2013 -
</HeaderRow>
</div>
)
})
}
출력을 생성하지 않고, 상기 코드를 정류. 그것은 오히려주는 새로운 오류 {this.renderHeader()}
const renderHeader = () => ({
if(activeTab === 0){
^
return(
<div>
<HeaderRow title={movie.title}>
WTH는'const renderHeader ='어쨌든 거기에 있습니까? – Bergi