Я действительно не понимаю, почему, когда я направляюсь на http://localhost:3000/subjects/physics моего проекта.
Переменная gradeSelection определяется в состоянии App.js.Он передается компоненту subjectCards.js через props в виде gradeSelection, который передает его компоненту Subject.js через props в виде gradeSelection.
Однако this.props.gradeSelection в Subjects.js возвращает неопределенное значение.
Возможно, я что-то не так делаю?
Вывод на консоль:
App.js: Year 12 // correct
subjectCards.js: Year 12 // correct
Subject.js: undefined // not correct
App.js
constructor(props) {
super(props);
this.state = {
gradeSelection: "Year 12"
};
}
render() {
console.log("App: "+this.state.gradeSelection)
return (
<Route path="/subjects" render={(props)=>(<SubjectCards {...props} gradeSelection={this.state.gradeSelection} />)} />
);
}
subjectCards.js
let display;
console.log("subjectCards.js: "+props.gradeSelection)
display = <Route path="/subjects/:subjectName" render={(props)=><Subject {...props} gradeSelection={props.gradeSelection}/>} />
return (
display
);
Subject.js
constructor(props) {
super(props);
console.log("Subject.js: "+this.props.gradeSelection); // undefined
}
Спасибо!
РЕДАКТИРОВАТЬ:
Когда console.log (props) или console.log (this.props) в конструкторе Subjects.js.GradeSelection внутри вывода консоли все еще не определено ..
Я попытался передать строку в gradeSelection в subjectCards.js, и вывод консоли был правильным при возврате строки в Subject.js ..
display = <Route path="/subjects/:subjectName" render={(props)=><Subject {...props} gradeSelection={"props.gradeSelection"}/>} />