来自函数的 React Native useState 更改不会重新渲染组件

时间:2021-06-29 07:09:18

标签: react-native use-state

我已经尝试了很多针对类似问题的答案,但没有解决我的问题,因为我正在更改一个函数中的状态,我在按下第三方库中的按钮时调用该函数我'我正在使用。

我正在使用 react-native-horizontal-date-picker 并在选择一个日期时调用一个函数来更改状态。

<HorizontalDatePicker
    pickerType={'date'}
    dayFormat={'Do'}
    monthFormat={'MMM'}
    yearFormat={'YYYY'}
    returnDateFormat={'DD-MM-YYYY'}
    onDateSelected={(date) => {
        if (date) {
            getTimeData()
        }
    }}
/>

然后在我的 getTimeData 函数中更新 const [timeSlots, setTimeSlots] = useState([]); 状态:

function getTimeData() {
...
            if (timeAvailable) {
                setTimeSlots(finalTimeSlots)
            } else if (!timeAvailable) {
                setTimeSlots([])
            }
...
}

基于 timeSlots 数组,我正在更新 UI,现在我必须在日期上点按两次才能看到呈现的结果。

我将 timeSlots 传递给我制作的另一个自定义组件:

<TimePicker timeSlotsArray={timeSlots} />

在这种情况下我如何实现这一点?

0 个答案:

没有答案