У меня есть родительский компонент и несколько дочерних компонентов. Каждый дочерний компонент отвечает за получение данных и привязку к объекту, присутствующему локально.
Теперь в родительском компоненте у меня есть метод сохранения. Когда запускается событие сохранения щелчка, мне нужно собрать все объекты из дочернего элемента, сопоставить их с одним объектом и перейти к api. Может ли кто-нибудь помочь мне, как это сделать?
Ниже приведены некоторые методы, которые я пробовал, но не смог. Здесь я использовал useRef.
// One of the child component
const Questionnaire = forwardRef((props,ref) => {
useImperativeHandle(ref, () => ({
getUserEnteredObjectRef() {
return userEnteredData;
}
}));
});
//in my parent
function HandleSaveRequest() {
console.log('Save Request Command:');
let qtnObj = questionnaireRef.current.getUserEnteredObjectRef(); // prints the object
console.log(qtnObj); // displays the object from the child
setSaveRequestObj({qtn:qtnObj}); // don't get assigned and the object will be empty. strange is when i click the save 2nd time i get the object assigned.
axios.post(API, SaveRequestObj).then(res => {
goToDashboard();
}).catch(err => {
console.log('Error while saving' + err.message);
});
}
Ссылка Вызов дочернего метода от родителя