useState 中的函数因为不是函数而出错
functions in useState are erring as not a function
我正在尝试使用 React Hooks,但我一定遗漏了一些东西。我没有得到以下任何设置函数的函数。
以此为参考:https://reactjs.org/docs/hooks-state.html
function Login() {
const [user, pass, setUser, setPass, test, setTest] = useState();
return (
<LoginWrapper>
<Branding brand={brand.brandName} />
<FormWrapper>
<Stack>
<TextInput
type="text"
label="Username"
onChange={() => setUser(this)}
/>
</Stack>
<Stack>
<TextInput
type="password"
label="Password"
onChange={() => setPass(this)}
/>
</Stack>
<Stack padding="0" align="right">
<Button
onClick={() => {
setTest("user and pass");
}}
>
Login
</Button>
</Stack>
</FormWrapper>
</LoginWrapper>
);
}
通过使用 useState
,您将得到一个数组,其中第一个元素是初始状态,第二个元素是 setter 状态。
您的 pass
实际上是 user
的 setter。
要像你想的那样使用多个值,你必须这样做:
const [user, setUser] = useState(...);
const [pass, setPass] = useState(...);
const [test, setTest] = useState(...);
或者作为替代方案,您可以将其用作具有单个 useState
的组合对象,但您必须将其与当前状态合并。
我正在尝试使用 React Hooks,但我一定遗漏了一些东西。我没有得到以下任何设置函数的函数。
以此为参考:https://reactjs.org/docs/hooks-state.html
function Login() {
const [user, pass, setUser, setPass, test, setTest] = useState();
return (
<LoginWrapper>
<Branding brand={brand.brandName} />
<FormWrapper>
<Stack>
<TextInput
type="text"
label="Username"
onChange={() => setUser(this)}
/>
</Stack>
<Stack>
<TextInput
type="password"
label="Password"
onChange={() => setPass(this)}
/>
</Stack>
<Stack padding="0" align="right">
<Button
onClick={() => {
setTest("user and pass");
}}
>
Login
</Button>
</Stack>
</FormWrapper>
</LoginWrapper>
);
}
通过使用 useState
,您将得到一个数组,其中第一个元素是初始状态,第二个元素是 setter 状态。
您的 pass
实际上是 user
的 setter。
要像你想的那样使用多个值,你必须这样做:
const [user, setUser] = useState(...);
const [pass, setPass] = useState(...);
const [test, setTest] = useState(...);
或者作为替代方案,您可以将其用作具有单个 useState
的组合对象,但您必须将其与当前状态合并。