如果将第17行替换为加密信息?.map.我在useState挂钩中使用了加密信息.这是由于useState中的错误导致的吗

const Cryptocurrencies = ({ simplified }) => {
  let count = simplified ? 10 : 100;
  const { data: cryptoList, isFetching } = useGetCryptosQuery(count);
  const [cryptoInfo, setCryptoInfo] = useState(cryptoList?.data?.coins);
  console.log(cryptoInfo);
  if (isFetching) return "Loading...";

  return (
    <>
      <Row gutter={[16, 16]} className="crypto-card-container">
        {cryptoList?.data?.coins?.map((currency) => (
          <Col
            xs={24}
            sm={12}
            xl={6}
            className="crypto-card"
            key={currency.uuid}
          >
         </Col>
        ))}
      </Row>
    </>
  );
};

export default Cryptocurrencies;

推荐答案

我假设你的问题是,cryptoInfo是用undefined初始化的,因为useGetCryptosQuery(count)似乎是一个bloc函数,它返回一个最初为undefined的值,后来得到更新-但在那个时候,cryptoInfo已经用undefined初始化,并没有得到新的值更新.

快速解决办法是使用useEffect使cryptoInfo始终保持最新:

useEffect(
    () => setCryptoInfo(cryptoList?.data?.coins), 
    [cryptoList]
);

Reactjs相关问答推荐

react-hook-form问题:为什么getValues不返回大多数当前值?

如何在没有 node 模块的情况下利用外部Java脚本文件制作OWL carousel

根据另一个Select中的选定值更改Select中的值

有没有办法在Shopify中显示自定义计算的交货日期?

如何使数据库数据在第一次呈现时显示?

StyleX中的多语言支持

如何通过reactjs正确显示记录

如何垂直对齐 React Bootstrap Table 行中的项目

在 monorepo 内的工作区或库之间共享 redux 状态

useEffect内部的RETURN语句在首次按钮点击事件中似乎无效的原因是什么?

如何防止开发人员使用 ESLint 在 React 项目中使用特定的钩子?

我收到Uncaught TypeError: props.handleSelect is not a function

使用状态与复选框不同步

React - 使用 React 显示错误和积极alert

在准备回调中使用状态属性(Redux 工具包)

使用 Vite 的 React 中的路由无法正常工作(构建中)

添加新行时自动打开可扩展表格(Antd 表格,ReactJS)

Wordpress 插件在激活时创建一个 React Public 页面

在 Redux 中更新布尔状态时出错

为什么我从另一个组件收到错误?