我正在尝试遍历一组对象,但它没有给我一个错误。我有 3 个文件,我试图从中提取数据,我在数组和对象遍历方面不是那么好,而且在 react contextAPI 中也是新的,所以一些帮助和指导将不胜感激。
这是 userContext.js 文件:
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 文件:
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;
感谢任何帮助和纠正。