У меня есть следующие настройки:ReactJS/React-Router: как фильтровать вложенный массив и объекты на основе параметров пути URL?
Переход к StudentsBoard:
Как маршрут устанавливается:
<Route
component={StudentsBoard}
path='/StudentsBoard/:name/:day/:color'
/>
А на странице StudentsBoard:
const mapStateToProps = (state, ownProps) => {
let student = state.students.filter(student => student.name == ownProps.params.name)
let day = ownProps.params.day
let color = ownProps.params.color
return {
carFiles: student[0].day.color //Getting an error here saying day and color are - Uncaught TypeError: Cannot read property 'day'/'color' of undefined
}
}
Но для let day
и let color
Я получаю сообщение об ошибке: Uncaught TypeError: Cannot read property 'day'/'color' of undefined
Как я могу сделать переданный в Params, day
и color
как ссылки на недвижимость в student[0]
? Или есть лучший способ фильтрации объекта на основе параметров, переданных через ownProps.params
? Хотел бы в конечном итоге перейти к цветному объекту.
Спасибо, и быть уверенным, чтобы голосовать и принимать ответа
EDIT структура
данных:
students: [
{
name: Kev
monday: {
blue: {
room: 5
},
pink: {
root: 6
}
},
tuesday: {
green: {
room: 7
},
purple: {
root: 8
}
},
},
{
name: Jerome
monday: {
black: {
room: 5
},
orange: {
root: 6
}
},
tuesday: {
yellow: {
room: 7
},
purple: {
root: 8
}
},
},
]
это не должно быть 'студент [0] [день] [цвет]'? – jukempff
@jukempff О, как он это сделал? Разве это не должно быть. Мысль '[]' ссылается на индекс массива. –