提示信息

Argument of type 'number' is not assignable to parameter of type 'SetStateAction'.ts(2345) (property) slidePageIndex: number

想象力 已关注

你收到这个错误是因为你试图将一个number赋值给一个状态变量,该状态变量的初始状态被设定为null。在Typescript中,这种情况下,它会默认该状态始终为null

如果你希望这个状态变量可以接受null或者number类型的数据,你需要在使用useState时明确指定。

以下是如何解决此问题:

  1. import React, { useState } from 'react';
  2. import clsx from 'clsx';
  3. function MyComponent({ options, callback }) {
  4. const [selectedValue, setSelectedValue] = useState<number | null>(null);
  5. const handleClick = (value: number) => {
  6. setSelectedValue(value);
  7. callback(value);
  8. };
  9. return (
  10. <div className="pagelist">
  11. {options.map((option: any) => (
  12. <div
  13. key={option.value}
  14. className={clsx({ active: selectedValue === option.value })}
  15. onClick={() => handleClick(option.value)}
  16. >
  17. <img src={option.img} alt={option.alt} />
  18. </div>
  19. ))}
  20. </div>
  21. );
  22. }
  23. export default MyComponent;

在这个例子中,我使用useState<number | null>来表示状态selectedValue可以接受numbernull类型的数据。同时,handleClick函数的参数现在也被指定为number类型。

    遇到难题? "AI大模型GPT4.0、GPT" 是你的私人解答专家! 点击按钮去提问......
想象力 关注 已关注

最近一次登录:2024-05-07 21:33:49   

暂时还没有签名,请关注我或评论我的文章
×
免费图表工具,画流程图、架构图