дочернего компонента.
Есть форма
const [value, setvalue] = useState(null);
const handleChange = (event) => {
setvalue(event.target.value);
}
<Form onFinish={onFinish}>
<Form.Item
label="reg"
name="reg"
rules={[{required: true,message: "enter reg)}]}
>
<DrawerProvider value={value} url="/incoming" options={{ method: 'get', cancelTokenKey: 'regToken' }}>
<Drawer handleChange={handleChange} />
</DrawerProvider>
</Form.Item>
<Form.Item>
<Button type="primary" htmlType="submit"> ok </Button>
</Form.Item>
</Form>в Drawer есть input, который заполняется строкой из таблицы по клику на нее.
Когда жму кнопку на форме, данные с drawer/input не подтягиваются и отрабатывает rules. Как их правильно передать, я еще не очень силен в контексте, что делаю не так?
Контекст выглядит так
const DrawerContext = createContext();
function DrawerProvider(props) {
const style = props.style;
const code = props.code;
const url = props.url;
const options = props.options;
const value = props.value;
return (
<DrawerContext.Provider value={{ style, code, url, options, value }}>
{props.children}
</DrawerContext.Provider>
);
}
export { DrawerContext, DrawerProvider };в props.value - undefined
Когда передача параметров превращается в программирование значит что то идёт не так :)
Ну как передать параметры с помощью контекста в компонент Drawer я разобрался, а вот в обратном направлении с него как получить, чтобы не срабатывал rules в Form.Item не вдуплю=\
react-hook-form
Я с такой штукой не работал, из тех что видел понял что лучше самому написать, то что проще будет раза в 10 и писать будет понятней. Буду по типу QT ее делать.
Та не хотелось бы библиотек навешивать, я думаю это же можно с помощью контекста сделать как-то
В контексте сделай функцию для возврата значения
И через Provider передать ее в Drawer и присвоить onChange инпута?
Так точно
Обсуждают сегодня