Sha*_*eaf 3 javascript typescript reactjs
比方说,我有一个名为的状态变量amount,并且有一个输入字段,当我们输入该变量时,该输入字段会更改该变量。我不想将初始值显示为0。那么我应该用什么来初始化状态变量呢?我尝试初始化,null但控制台发出警告:
Warning: 'value' prop on 'input' should not be null.
Consider using the empty string to clear the component or 'undefined' for uncontrolled components.
Run Code Online (Sandbox Code Playgroud)
我现在有两个问题:-
null?我尝试谷歌搜索但无法得到明确的答案。man*_*055 12
让我一一回答你的两个问题:
null?显示此警告是因为 React 期望受控value输入组件的 prop为, (或者如果输入类型为不受控1)。当该值设置为 时,React 会将其视为不正确的值类型,因此会抛出警告以提醒您使用适当的值类型。stringnumberundefinednull
官方文档中需要注意的要点:2
传递给受控组件的值不应为未定义或为空。
如果您不想显示 的初始值0,可以使用空字符串 ( '') 初始化状态变量。这样,输入字段最初将显示为空,并且React不会抛出您收到的警告。这也是从官方文档2中推断出来的:
如果您需要初始值为空(例如下面的firstName 字段),请将状态变量初始化为空字符串('')。
const [amount, setAmount] = useState('');
const handleChange = (e) => {
// do whatever you want with amount by parsing it to number
setAmount(e.target.value);
};
...
<input type="number" value={amount} onChange={handleChange} />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
368 次 |
| 最近记录: |