Calender передает CalenderScreen обратный вызов onSelect (id).
Экран календаря должен вызывать только onSelect (день).
onDayPress={(day) => {onSelect(day)}}
Или сделайте так, чтобы обратный вызов принимал как навигационный объект, так и день
onDayPress={(day) => {onSelect(day, navigation)}}
Календарь должен теперь установить
onSelect={(day, navigation)=>{
navigation.navigate('Agenda', {day}) }}>
Или, когда вы проходите навигациювозражать против Каландера, зачем передавать обратный вызов
onDayPress={(day) => {this.props.navigation.navigate('Agenda', {day})}}
Редактировать: новые классы и изменили идентификатор на день
Та же проблема.onSelect переходит к AgentScreen и передает ему реквизит навигации (с указанием объекта дня в нем), и, в свою очередь, AgentScreen передает реквизит навигации WeeklyAgent, но WeeklyAgent не использует реквизит навигации для получения идентификатора.
selected={Date()}
Создает новый объект даты с текущей датой.Чтобы получить правильную дату, вам нужно получить день из навигации, обычно что-то вроде
this.props.navigation.state.params["day"]
возвращает пройденную дату.
Теперь, если WeeklyAgenda фактически не использует навигацию далее, я бы его не пропустил.
Вместо еженедельной повестки дня должна быть указана опора 'day', поэтому вместо
<WeeklyAgenda navigation={navigation}>
try
const { params } = this.props.navigation.state;
...
<WeeklyAgenda day={params["day"}>
Первая строкараспаковывает объект params из состояния в переменную с именем params.
WeeklyAgenda теперь будет делать
selected={this.props.day}
Я не думаю, что проблема здесь заключается в связывании вообще.Я бы рекомендовал прочитать эту статью или другую статью о том, что делает привязка.