首先,請原諒措辭不佳的問題。如何在特定部分狀態丟失時防止導航到組件?
我有與這條路線頁面的SPA:
/students
該頁面的容器是StudentsView.js
,這裏面我這樣做是爲了讓學生的名單:
componentDidMount() {
this.props.actions.loadStudents()
}
這是一個學生名單,點擊一個會根據你的學生ID做出學生的詳細頁面:
/student/5
該頁面的組件是StudentDetailView.js
現在,以避免不必要的API調用初始應用負載時提高性能,我還沒有分派到loadStudents()
行動的呼籲,其從設置狀態的學生部分API調用,因爲此頁面不是我的應用程序的主頁面。現在
問題是,當用戶瀏覽到一個學生的詳細信息頁說:
/student/5
再刷新頁面,因爲它們是在不同的組件和StudentsView.js
組件的componentDidMount()
不再所謂的,我結束了我的狀態的空數組的學生,所以在我的學生細節分量學生將是不確定的:
function mapStateToProps (state, ownProps) {
const studentId = +ownProps.params.id
let student = { id: '', firstName: '', lastName: '' }
if (studentId && state.students.length > 0) {
student = getStudentById(state.students, studentId)
}
return {
student: student
}
}
有大約t的一種工作方式他除了確保loadStudensts()
操作在初始應用程序加載中被調用?
什麼是最佳做法,如果students
列表爲空,是否將用戶導航回列表頁面?有沒有辦法,是否推薦我在StudentDetailView.js
組件中分解loadStudents()
動作?
基本上,我如何確保學生的狀態部分總是在用戶在StudentDetailView.js
時填充?
感謝您的任何幫助。