Я создал очень простой модал из antd, и я хочу использовать этот модальный базис c в качестве модального универсального c для многих частей моего приложения. Однако я не могу понять, как сначала использовать обработчик реакции для функции с параметрами, а затем как передать эту функцию в модальный компонент в качестве подпорки.
const [visible, setVisible] = useState(false)
const [title, setTitle] = useState('New Folder')
const [inputValue, setInputValue] = useState('Untitled Folder')
const [buttonText, setButtonText] = useState('Create')
const [submissionAction, setSubmissionAction] = useState('New Folder')
<Modal
width={300}
centered={true}
visible={visible}
onCancel={handleCancel}
footer={[
<Button key="back" onClick={handleCancel}>
Cancel
</Button>,
<Button
key="submit"
type="primary"
loading={loading}
onClick={() => {
form
.validateFields()
.then((values) => {
console.log(values)
if (submissionAction === 'New Folder') {
createNewFolder(values.name)
} else if (submissionAction === 'New File') {
createNewFile(values.name)
}
setVisible(false)
})
.catch((info) => {
console.log('Validate Failed:', info)
})
}}
>
{buttonText}
</Button>,
]}
>
<div
style={{
fontSize: '16px',
fontWeight: 'bold',
paddingBottom: '15px',
color: 'black',
}}
>
{title}
</div>
<Form
form={form}
layout="vertical"
name="form_in_modal"
initialValues={{ name: inputValue }}
>
<Form.Item
rules={[
{
required: true,
message: 'Please enter a name',
},
]}
name="name"
>
<Input type="textarea" value={inputValue} />
</Form.Item>
</Form>
</Modal>
Обратите внимание на переменные, такие как buttonText или title - Dynami c, я использую хуки для них, и позже, когда я сделаю этот модал в обобщенном c компоненте, я передам значения как реквизиты. Как я могу передать значение функций в onClick как реквизиты? И как бы я даже сохранил их, используя состояние для начала?
Как вместо использования строки (submissionAction) для представления какой функции вызывать, скажем, у меня есть хук для функции, поэтому, когда пользователь нажимает на кнопку, чтобы создать новую папку, я установлю значение этой ловушки, чтобы быть соответствующей функцией createNewFolder, иначе createNewFile или editFolder et c. Затем я передам значение этого хука в обобщенный c модальный компонент, чтобы я мог использовать его во всем приложении. Как я могу это сделать? Или есть лучший способ сделать то, что я пытаюсь достичь. Нужно ли создавать модальный компонент в каждом компоненте, где я использую модальный, или я могу использовать один модальный для всех?