Reactjs 使用以前上下文中的数据是可用的

Reactjs 使用以前上下文中的数据是可用的,reactjs,Reactjs,我有一个输入字段,它从上下文中呈现数据。它还可以改变数据 <input value={ user.name } onChange={(e) => setUser({...user, name: e.target.value})} /> 但是默认情况下,我的用户不再是空的(我无法检查(user){…}) 我如何使用 const [user, setUser] = useState({ }); 没有得到警告?(默认情况下输入应该为空。这很好)如果user.name为假,您可以简

我有一个输入字段,它从上下文中呈现数据。它还可以改变数据

<input value={ user.name } onChange={(e) => setUser({...user, name: e.target.value})} />
但是默认情况下,我的用户不再是空的(我无法检查(user){…}) 我如何使用

const [user, setUser] = useState({ });

没有得到警告?(默认情况下输入应该为空。这很好)

如果
user.name
为假,您可以简单地为
输入
元素提供默认值

<input 
  value={ user.name || "" } 
  onChange={(e) => setUser({...user, name: e.target.value})} 
/>
setUser({…user,名称:e.target.value})
/>

如果
user.name
为假,您可以简单地为
输入
元素提供默认值

<input 
  value={ user.name || "" } 
  onChange={(e) => setUser({...user, name: e.target.value})} 
/>
setUser({…user,名称:e.target.value})
/>

问题不在于你所在的州,而在于你的控制权。您正在将其从受控输入更改为非受控输入。如果状态未定义,请为输入提供默认值。like value={user.name | |''''}?是的,这将使其保持为受控组件。问题不在于状态,而在于控件。您正在将其从受控输入更改为非受控输入。如果状态未定义,请为输入提供一个默认值。like value={user.name | |''''}?是的,这将保持它作为受控组件。