React - 导航提示 onConfirm 立即被触发

React - Navigation Prompt onConfirm gets triggered straight away

我有一个问题,我需要在用户尝试重新路由(有效)时显示导航提示。 但是 onConfirm 函数在我点击“确认”按钮之前立即被调用。 我想setReload(true)在用户按下“确认”按钮后。

<NavigationPrompt onConfirm={setReload(true)} when={myExampleFunction}>
                    {({ onConfirm, onCancel }) => (
                        <React.Fragment>
                            <Modal
                                ariaHideApp={false}
                                style={customStyles}
                                isOpen={true}
                            > You are about to lose all the data
            <button onClick={onCancel}>Cancel</button>
                                <button onClick={onConfirm}>Confirm</button>
                            </Modal>
                        </React.Fragment>
                    )}
                </NavigationPrompt>

问题是您在装载时使用 setReload(true) 调用 setReload

您需要传递一个函数,而不是在那里调用它:

onConfirm={() => setReload(true)} // A new function to be called onConfirm