I am trying to use Context in my form, so i have same component for edit and create form. The only difference edit form will have the pre-filled values.
I am adding a sample snippet of the workflow, the problem is here i am getting the props as empty object but i passing the context value on the clone element.
App.js
<Container {...props}>
<Fragment>
<Form />
<div>
Latest Details
</div>
</Fragment>
</Container>
Container.js
const Container = (props) => {
const ContainerContext = createContext({ ...defaultState, ...props });
return (
<ContainerContext.Provider value={{ ...defaultState, ...props }}>
<ContainerContext.Consumer>
{(value) => {
return React.Children.map(props.children, (child) => {
return React.cloneElement(child, { ...props, ...value });
});
}}
</ContainerContext.Consumer>
</ContainerContext.Provider>
);
}
Form.js
const Form = (props) => {
console.log(props) // getting empty object
return 'form'
}
Any help is appreciated
Update
App.js
<Container {...props}>
<Fragment>
<TopContainer>
<TopData />
</TopContainer>
<MiddleContainer>
<Form />
</MiddleContainer>
<LowContainer>
<LowData />
</LowContainer>
</Fragment>
</Container>;