reactjs 列表状态未更新

fumotvh3  于 2022-12-22  发布在  React
关注(0)|答案(3)|浏览(146)

我不知道为什么列表的状态没有更新。response.data在控制台中打印。

function Products(){
           const [List ,setList] = useState([])
           useEffect(() => {
                      axios.get("http://localhost:8900/courses").then((response)=> {
                            setList((prevList) => [...prevList, response.data]};
                            console.log( response.data)
                            console.log( "list",List)
                            });
                      }, []);

我期望列表的状态用数据更新

q5iwbnjs

q5iwbnjs1#

我尝试了这个演示,它的工作完美。你需要知道,setList是异步的,因为每个this answer

function apiCall() {
  return new Promise((resolve) => setTimeout(() => resolve(3), 5000));
}
export default function App() {
  const [List, setList] = React.useState([1, 2]);
  React.useEffect(() => {
    apiCall().then((response) => {
      setList((prevList) => [...prevList, response]);
    });
  }, []);
  return <div>{List.join(' ')}</div>;
}
ohfgkhjo

ohfgkhjo2#

Axios内部的setList上有一个打字错误,您忘记关闭括号,而是使用了一个花括号。

setList((prevList) => [...prevList, response.data]}; // it should be ])

x一个一个一个一个x一个一个二个x

wqsoz72f

wqsoz72f3#

你可以刷新页面。2我希望它能工作!

相关问题