Vad*_*sky 5 reactjs react-hooks
我已将代码从组件更改为挂钩。我对它完全陌生,我正在学习反应,我需要帮助将其更改为钩子我应该做什么才能使其在功能反应上工作?
const [nameFocused, setNameFocused] = useState(true);
<FormGroup
className={classnames("mt-5", {
focused: nameFocused,
})}
>
<InputGroup className="input-group-alternative">
<InputGroupAddon addonType="prepend">
<InputGroupText>
<i className="ni ni-user-run" />
</InputGroupText>
</InputGroupAddon>
<Input
placeholder="Your name"
type="text"
onFocus={(e) => setNameFocused(true)}
onBlur={(e) => setNameFocused(false)}
/>
</InputGroup>
</FormGroup>
Run Code Online (Sandbox Code Playgroud)
不相关:
<FormGroup
className={classnames("mt-5", {
focused: state.nameFocused,
})}
>
<InputGroup className="input-group-alternative">
<InputGroupAddon addonType="prepend">
<InputGroupText>
<i className="ni ni-user-run" />
</InputGroupText>
</InputGroupAddon>
<Input
placeholder="Your name"
type="text"
onFocus={e => this.setState({ nameFocused: true })}
onBlur={e => this.setState({ nameFocused: false })}
/>
</InputGroup>
</FormGroup>
``
Run Code Online (Sandbox Code Playgroud)
useState您应该在组件中使用钩子。
这nameFocused是一个状态,setNameFocused等于this.setState({ nameFocused: ...})类组件中的状态。
import { useState } from 'react'
...
const [nameFocused, setNameFocused] = useState(false)
return (
<FormGroup
className={classnames("mt-5", {
focused: nameFocused,
})}
>
<InputGroup className="input-group-alternative">
<InputGroupAddon addonType="prepend">
<InputGroupText>
<i className="ni ni-user-run" />
</InputGroupText>
</InputGroupAddon>
<Input
placeholder="Your name"
type="text"
onFocus={e => setNameFocused(true)}
onBlur={e => setNameFocused(false)}
/>
</InputGroup>
</FormGroup>
)
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9120 次 |
| 最近记录: |