Я пытаюсь перебрать массив объектов, но он не выдает ошибку. У меня есть 3 файла, из которых я пытаюсь извлечь данные, я не так хорош в массивах и обходе объектов, а также нов в реагирующем контекстеAPI, поэтому некоторые советы и рекомендации будут оценены.
Это userContext. js file:
import React, { useState, createContext } from 'react';
export const UserContext = createContext();
export const UserProvider = props => {
var [users, setUsers] = useState([
{
"users": [
{
id: '1',
name: 'user1'
},
{
id: '2',
name: 'user2'
},
{
id: '3',
name: 'user3'
},
{
id: '4',
name: 'user4'
},
],
"todos": [
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
},
{
"userId": 1,
"id": 2,
"title": "quis ut nam facilis et officia qui",
"completed": false
},
{
"userId": 2,
"id": 1,
"title": "fugiat veniam minus",
"completed": false
},
{
"userId": 2,
"id": 2,
"title": "et porro tempora",
"completed": true
},
]
}
]);
return (
<UserContext.Provider value={[users, setUsers]}>
{props.children}
</UserContext.Provider>
);
}
Это userList. js file:
import React, {useState, useContext} from 'react';
import {Form} from 'react-bootstrap'
import User from './User'
import {UserContext} from './UserContext'
const UserList = () => {
const [users, setUsers] = useContext(UserContext);
return(
<Form.Group controlId="exampleForm.ControlSelect1">
<Form.Label>Please select a user</Form.Label>
<Form.Control as="select" onChange={()=> {this.changeUser()}}>
{
Object.keys(users).map(fst =>{
users[fst].map(sub_fst =>
{
<User name={sub_fst.name} key={sub_fst.id} />
}
);
})
}
</Form.Control>
</Form.Group>
);
}
export default UserList;
И здесь я хочу, чтобы данные отображались в User. js:
import React from 'react';
const User = (props) => {
return (
<option>
{props.name}
</option>
);
}
export default User;
Ценю любую помощь и исправления.