Reactjs 如何使用firebase的数据结果在阵列中发布

Reactjs 如何使用firebase的数据结果在阵列中发布,reactjs,firebase,Reactjs,Firebase,这是我第一次使用Firestore。当我添加“按日期筛选”时,我无法从firestore获取数据,当我将其放入表中时,请获取以下信息: console.log(状态)附件: console.log(状态[0])附件: 如何使用状态的结果在数组中发布 export default function TableList() { const { currentUser, logout } = useAuth() const classes = useStyles(); const [

这是我第一次使用Firestore。当我添加“按日期筛选”时,我无法从firestore获取数据,当我将其放入表中时,请获取以下信息: console.log(状态)附件:

console.log(状态[0])附件:

如何使用状态的结果在数组中发布


export default function TableList() {
  const { currentUser, logout } = useAuth()
  const classes = useStyles();
  const [state, setstate] = useState([])
  useEffect(() => {
    var users = [];
    db.collection("users")
      .get()
      .then((snapshot) => {
        snapshot.forEach((doc) => {
          const data = doc.data();
          users.push(data);
        });
      });
    setstate(users);
  }, []);
console.log(state[0])
  return (
    <GridContainer>
      <GridItem xs={12} sm={12} md={12}>    
      </GridItem>
      <GridItem xs={12} sm={12} md={12}>
        <Card plain>
          <CardBody>
            <Table
              tableHeaderColor="primary"
              tableHead={["ID", "Name", "Country", "City", "Salary"]}
              tableData={[["1", "Dakota Rice", "$36,738", "Niger", "Oud-Turnhout"],["2", "Minerva Hooper", "$23,789", "Curaçao", "Sinaai-Waas"]]}
            />
          </CardBody>
        </Card>
      </GridItem>
    </GridContainer>
  );
}

导出默认函数TableList(){
const{currentUser,logout}=useAuth()
const classes=useStyles();
const[state,setstate]=useState([])
useffect(()=>{
var用户=[];
数据库收集(“用户”)
.get()
。然后((快照)=>{
snapshot.forEach((doc)=>{
const data=doc.data();
推送(数据);
});
});
设置状态(用户);
}, []);
console.log(状态[0])
返回(
);
}

使用
时,请确保更改其内部的状态。否则,您将使用空数组更改状态

useffect(()=>{
数据库收集(“用户”)
.get()
。然后((快照)=>{
//坎格
var用户=[];
snapshot.forEach((doc)=>{
const data=doc.data();
推送(数据);
});
//改变
设置状态(用户);
});
}, []);
代码是异步的,因此当您使用
时,
中的代码将在将来的某个地方发生,但您的其余代码将立即执行,因此您的
设置状态
是在
之前执行的,然后
。因为你的状态是空的。通过将
设置状态
放在
内,然后
将在实际有数据时更改状态