我有一个带有输入元素的 React DatePicker 组件。为了处理 onChange 事件,我定义了 onChangeHandler 函数。但是,当我想在 onChangeHandler 中定义作为参数传递的所有函数的类型时,我收到以下错误:
“(value: string) => void”类型的参数不可分配给“Dispatch”类型的参数。参数“value”和“value”的类型不兼容。“SetStateAction”类型不能分配给“string”类型。类型 '(prevState: string) => string' 不可分配给类型 'string'.ts(2345
当我将函数定义为“any”时,此错误消失,但当然我们不希望代码中包含任何内容:)。
下面是我的设置。我的主应用程序中有一个名为 Datepicker 的输入组件,它从主应用程序获取状态。
const [value, setValue] = useState('');
它作为道具传递给 DatePicker 组件,如下所示:
return (
<form>
<label htmlFor="date-picker-input">Date:</label><br />
**<DatePicker value={value} setValue={setValue} dateFormat="YYYY/MM/DD" />**
<button type="submit" value="Submit">Submit</button>
</form>
);
Run Code Online (Sandbox Code Playgroud)
DatePicker 组件看起来像这样:
import onChangeHandler from "../utility/onChangeHandler";
interface IDatePickerProps {
applicationMode?: boolean;
value: string;
setValue: (value: string) => void;
dateFormat: DateFormat;}
const DatePicker: React.FC<IDatePickerProps> = (props) => {
const { value, setValue, dateFormat …Run Code Online (Sandbox Code Playgroud)