Below example works but how do I do to destructure the useContext data so that, I dont have to map in every div for every array value. I think is not clean at all. Doing it with props I know, I can map while creating the child2 component but I've tried couple ideas with useContext but not luck. Thanks in advance.
function App() {
return (
<div className="App">
<UserDataProvider>
<Child1 />
</UserDataProvider>
</div>
);
}
export default function child1() {
return (
<div>
<Child2 />
</div>
)
}
export default function Child2() {
const [userData, setUserData] = useContext(UserDataContext)
return (
<div>
<div>
{userData.map((val, index) => {
return (
<h1 key={val.id}>{val.name}</h1>
)
})}
</div>
<div>diplay phoneNumber</div>
<div>diplay cardNumber</div>
</div>
)
}
export const UserDataContext = createContext();
const UserDataProvider = (props) => {
const [userData, setUserData] = useState([{
id: '1',
name: 'PersonName',
phoneNumber: '555555',
cardNumber: '1234'
}])
return (
<UserDataContext.Provider value={[userData, setUserData]}>
{props.children}
</UserDataContext.Provider>
)
}
export default UserDataProvider
userDataalways an array with just one entry?