【问题标题】:Getting Error: Argument of type 'number' is not assignable to parameter of type 'string'出现错误:“数字”类型的参数不可分配给“字符串”类型的参数
【发布时间】:2021-10-30 16:34:19
【问题描述】:

我在我的 react typescript 项目中使用 react player。我正在使用材质 UI 音量滑块来设置反应视频播放器的音量。

音量值将介于 0 - 1 之间,因此为了计算相对于滑块的值,我创建了一个函数。

const handleState = (newValue: any) => {
    setState({ ...state, volume:parseFloat(newValue/100)});
  };

我的音量初始值为 0.5。我使用 useState 设置它

const [state, setState] = useState({
    volume: 0.5
  });

我在音量滑块上的通话

<Slider
            min={0}
            max={100}
            value={50}
            onChange={handleState}
          />

newValue/100 出现错误

【问题讨论】:

    标签: reactjs typescript material-ui react-player


    【解决方案1】:

    parseFloat(string)接收字符串

    所以在最后添加一个Number(newValue)toString() 可以解决这个问题:

    const handleState = (newValue: any) => {
        setState({ ...state, volume:parseFloat((Number(newValue)/100).toString())});
      };
    

    【讨论】:

    • 是的,parseFloat(string) 收到一个字符串。我更新了答案
    • 嘿@RabnerCasandara,只需更新最终解决方案,看看它是否适合您
    猜你喜欢
    • 2020-09-18
    • 1970-01-01
    • 2021-12-20
    • 2018-06-19
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2021-02-03
    • 2020-04-12
    相关资源
    最近更新 更多