我已经构建了一个自定义Input
组件,它只是HTML input
元素的包装。这是关键代码,我已经简化了代码,以便在此处发布:
// @flow
import React, { useState } from 'react';
type Props = {
value?: string,
onChange: Function
};
const Input = ((props: Props) => {
const [ currentValue, setCurrentValue ] = useState(!!props.value ? props.value : '');
const handleChange = (event: SyntheticInputEvent<EventTarget>) => {
setCurrentValue(event.target.value);
props.onChange(event);
};
return <input type='text'
value={currentValue}
onChange={handleChange} />;
});
我为此写了很多React Testing库测试,它们都通过了。但是,当我在网页中实现此组件时,初始值无法显示。我通过删除currentValue
代码并仅使用props.value
来解决了这个问题。解决了。但是我很好奇为什么上面的这种方法无法显示初始值。