export const PrimaryCalendar = (props)=>{
const [showCal, setShowCal] = React.useState(false);
const mindate = new Date();
const showCalendar = ()=>{
setShowCal(!showCal)
}
const handleOnDateChange = () =>{
props.onDateChange()
setShowCal()
}
return(
<View>
{(showCal) ?
<View style={styles.container}>
<CalendarPicker
selectedDayColor="#079B2B"
minDate = {mindate}
startFromMonday={true}
allowRangeSelection={true}
todayBackgroundColor="#79AE08"
previousTitle="Previous"
nextTitle="Next"
onDateChange = { handleOnDateChange }
/>
</View>
:
<View>
<TouchableOpacity style={styles.calendarInputContainer} onPress={()=>showCalendar()}>
<Text style={{color:'white', fontSize:25}}>{props.title}</Text>
<Icon name="calendar" size={30} color={'white'}/>
</TouchableOpacity>
</View>
}
</View>
)
Сделайте так, чтобы ваш обратный вызов onChange
выполнял функцию с именем handleTextAreaChange
, которая затем выполняет ваши props.onDateChange()
и setShowCal()
Ваша ошибка: onDateChange = {()=>{ props.onDateChange,setShowCal()}}
При объявлении () => { }
содержимое фигурных скобок является блоком кода, что означает, что запятые, разделяющие вызовы функций, неверны.
Вот пример того, как это делается
onChange={ () => {
functionCall1()
functionCall2()
} }