Remove listener when component unmounts

This commit is contained in:
Julia Friesel
2018-06-09 15:06:13 +02:00
parent 80bf63adc2
commit 75a97089f9
2 changed files with 9 additions and 5 deletions
+9 -4
View File
@@ -9,10 +9,11 @@ export default class DatePickView extends Component {
super(props)
this.state = { bleedingDaysInCalFormat: getBleedingDaysInCalFormat(bleedingDaysSortedByDate) }
// so we rerender the calendar when there are new bleeding days
bleedingDaysSortedByDate.addListener(() => {
this.setState({ bleedingDaysInCalFormat: getBleedingDaysInCalFormat(bleedingDaysSortedByDate) })
})
bleedingDaysSortedByDate.addListener(setStateWithCalendarFormattedDays.bind(this))
}
componentWillUnmount() {
bleedingDaysSortedByDate.removeListener(setStateWithCalendarFormattedDays)
}
passDateToDayView(result) {
@@ -43,4 +44,8 @@ function getBleedingDaysInCalFormat(bleedingDaysSortedByDate) {
acc[dateString] = { startingDay: true, endingDay: true, color: shadesOfRed[day.bleeding.value] }
return acc
}, {})
}
function setStateWithCalendarFormattedDays() {
this.setState({ bleedingDaysInCalFormat: getBleedingDaysInCalFormat(bleedingDaysSortedByDate) })
}