React-native-calendars 使用 renderArrow 函数显示上个月和下个月而不是箭头

React-native-calendars Show previous and next month instead of arrows using renderArrow function

描述 使用 renderArrow 函数显示上个月和下个月而不是箭头

预期行为 左侧显示上个月,右侧显示下个月

观察到的行为 双面显示上个月

我的代码:

<Calendar
onDayPress={(day) => {this.setDay(day)}}
renderArrow={(left,right) => (left? {this.state.previousMonth}: {this.state.nextMonth})}
pastScrollRange={0}
markedDates={{[this.state.selected]: {selected: true, disableTouchEvent: true, selectedColor: '#C7A985'}}}
firstDay={1}
theme={{
selectedDayTextColor: 'white'
}}
/>

在您的代码中有两点需要注意

  • renderArrow 函数包含 direction 作为参数,它 随后包含值 leftright
  • renderArrow 函数接受 JSX 属性 因此你需要这样修改你的code

     <Calendar
        onDayPress={(day) => {this.setDay(day)}}
        renderArrow={this._renderArrow}
        pastScrollRange={0}
        markedDates={{[this.state.selected]: {selected: true, disableTouchEvent: true, selectedColor: '#C7A985'}}}
        firstDay={1}
        theme={{
            selectedDayTextColor: 'white'
        }}
    />
    

函数为

 _renderArrow = (direction) => {
        if(direction === 'left') {
            return <Text>{this.state.previousMonth}</Text>
        } else {
            return <Text>{this.state.nextMonth}</Text>
        }
    }