reactjs - 输入'号码 | {百分比:数字;}' 不可分配给类型 'string | 号码 | 未定义的 ts(2322)
问题描述
目前,我正在开发一个使用 react 实现进度条React
的项目。所以我想出了一个打字稿错误。这是我的代码Typescript
semantic-ui
import React, { Component,useState } from 'react'
import { Button, Progress } from 'semantic-ui-react'
export default function ProgressMobileStepper() {
//let percent :number
const [activeStep={percent:0}, setActiveStep] = React.useState(0);
const increment = () => {
setActiveStep((prevActiveStep) => prevActiveStep + 5);
};
const decrement = () => {
setActiveStep((prevActiveStep) => prevActiveStep - 5);
};
return (
<>
<div>
<Progress percent={activeStep} indicating color={'red'} size={'small'}/> //error in here percent
<Button onClick={increment}>Increment</Button>
<Button onClick={decrement}>Decrement</Button>
</div>
</>
);
}
解决方案
如果您尝试设置初始状态,那么请在useState
挂钩中进行,使用破坏分配回退值是无用的,因为useState
挂钩将始终返回您设置的已定义状态。
将子状态移动percent
到钩子中并相应地更新:
//let percent :number
const [activeStep, setActiveStep] = React.useState({ percent: 0 });
const increment = () => {
setActiveStep((prevActiveStep) => ({
percent: prevActiveStep.percent + 5
}));
};
const decrement = () => {
setActiveStep((prevActiveStep) => ({
percent: prevActiveStep.percent - 5
}));
};
...
<Progress
percent={activeStep.percent}
indicating
color={'red'}
size={'small'}
/>
或者不要使用嵌套percent
状态:
//let percent :number
const [activeStep, setActiveStep] = React.useState(0);
const increment = () => {
setActiveStep((prevActiveStep) => prevActiveStep + 5);
};
const decrement = () => {
setActiveStep((prevActiveStep) => prevActiveStep - 5);
};
<Progress
percent={activeStep}
indicating
color={'red'}
size={'small'}
/>
推荐阅读
- c - 如何跟踪多个文本文件的位置?
- sql - 在 SQL Server 中比较行与分组依据
- javascript - 调整反应组件以适应较小 div 的大小
- python - Python Selenium:如何从 iframe 中的元素中提取文本?
- code-coverage - 试图用 phpdbg 测量一个简单脚本的覆盖率
- android - 如何在flutter mobile中保存网站以供离线使用
- c++ - 调用 'std::set 没有匹配的函数
::插入(std::size_t&) - minikube - 尝试在 minikube 上使用 jenkins-x 部署应用程序时出错
- python - PyQt:如何连接自动添加的按钮
- android - 是否有任何功能可以帮助在颤振应用中添加朋友并对其进行排序?