提问人:Chris 提问时间:7/3/2020 更新时间:7/3/2020 访问量:126
将 this.state 转换为 useEffect,并将 Array 置于状态
Converting this.state to useEffect with Array in state
问:
这里的新手,当将带有构造函数的基于类的组件转换为带有 Hooks 的函数组件时,我缺少 sth。
我有this.state,它填充了我从Firebase获得的数组。
这工作正常:
class MyList extends React.Component {
constructor(props) {
super(props);
this.state = {
users: []
};
}
componentDidMount() {
db.collection("users")
.get()
.then(querySnapshot => {
const data = querySnapshot.docs.map(doc => doc.data());
console.log(data);
this.setState({ users: data });
});
}
render() {
const { users } = this.state;
return (
<>
{users.map(user => (
<p>A mapped item</p>
))}
</>
);
}
}
不幸的是,我无法正确转换,已经进行了几个小时,我一定遇到了一些概念问题:
function MyList() {
const [users, setUsers] = useState([]);
useEffect(() => {
db.collection("users")
.get()
.then(querySnapshot => {
const data = querySnapshot.docs.map(doc => doc.data());
console.log(data);
setUsers({ users: data })
});
}, [setUsers]);
return (
<>
{users.map(user => (
<p>A mapped item</p>
))}
</>
);
}
任何帮助将不胜感激 - 新手友好,请:)
答: 暂无答案
评论
setUsers({ users: data })
setUsers(data)