Art*_*urJ 3 javascript reactjs material-ui use-state
正在开发一个涉及 React Material-UI 表的教程 atm,该表也有一个搜索输入文本字段。我试图添加的是一个按钮,该按钮将重置表报告,但也会清除搜索输入文本字段。
我遇到问题的是清除搜索文本字段。
他们将此代码用作名为 Controls.input 的单独组件库:
从 'react' 导入 React 从 '@material-ui/core' 导入 { TextField };
export default function Input(props) {
const { name, label, value,error=null, onChange, ...other } = props;
return (
<TextField
variant="outlined"
label={label}
name={name}
value={value}
onChange={onChange}
{...other}
{...(error && {error:true,helperText:error})}
/>
)
}
Run Code Online (Sandbox Code Playgroud)
主要搜索代码如下,我还添加了一个按钮
<Controls.Input
id="name"
label="Search Name"
className={classes.searchInput}
InputProps={{
startAdornment: (<InputAdornment position="start">
<Search />
</InputAdornment>)
}}
onChange={handleSearch}
/>
<Button
onClick={handleClear}
className="materialBtn"
>
Clear
</Button>
Run Code Online (Sandbox Code Playgroud)
此时,我不确定如何引用/定位搜索输入字段作为函数的一部分handleClear
,以便清除其内容?
const handleClear = () => {
????
}
Run Code Online (Sandbox Code Playgroud)
我需要使用吗useState()
?
您必须将值放入状态,这是正确的。根据您提供的内容,您的状态似乎需要位于父组件中。所以这样的事情应该有效
import { useState } from 'react'
const ParentComponent = () => {
const [value, setValue] = useState('')
const handleClear = () => {
setValue('')
}
const handleSearch = (event) => {
setValue(event.target.value)
}
return (
<>
<Controls.Input
id="name"
label="Search Name"
className={classes.searchInput}
value={value}
onChange={handleSearch}
InputProps={{
startAdornment: (
<InputAdornment position="start">
<Search />
</InputAdornment>
),
}}
/>
<Button onClick={handleClear} className="materialBtn">
Clear
</Button>
</>
)
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12695 次 |
最近记录: |