javascript - 使用没有类组件的构造函数(道具)
问题描述
我在 TypeScript 中创建了一个搜索栏,但现在我无法在其中输入任何内容。我看到的所有控制组件教程都建议使用构造函数(props)左右。如果我在我的代码中使用它,我会得到错误。
有没有办法在没有类组件的情况下使用它?
例如,我正在为我的页面使用 const()。有什么办法可以使这个搜索栏起作用吗?
const userSearchPage = () => (
<div>
<PermanentDrawerLeft></PermanentDrawerLeft>
<div className='main-content'>
<MuiThemeProvider>
<DropDownMenu >
<MenuItem style={{ fontSize: "20px" }} primaryText="Search By" />
<MenuItem value={1} style={{ fontSize: "20px" }} primaryText="First Name" />
<MenuItem value={1} style={{ fontSize: "20px" }} primaryText="Last Name" />
</DropDownMenu>
</MuiThemeProvider>
<SearchBar
onChange={() => console.log('onChange')}
onRequestSearch={() => console.log('onRequestSearch')}
style={{
margin: '0 auto',
maxWidth: 800
}}
/>
</div>
</div>
);
解决方案
您必须在功能组件中使用 useState 挂钩。
const userSearchPage = () => {
const [value, setValue] = React.useState('');
return (
<div>
<PermanentDrawerLeft></PermanentDrawerLeft>
<div className='main-content'>
<MuiThemeProvider>
<DropDownMenu >
<MenuItem style={{ fontSize: "20px" }} primaryText="Search By" />
<MenuItem value={1} style={{ fontSize: "20px" }} primaryText="First Name" />
<MenuItem value={1} style={{ fontSize: "20px" }} primaryText="Last Name" />
</DropDownMenu>
</MuiThemeProvider>
<SearchBar
onChange={(value) => setValue(value) }
value={value}
onRequestSearch={() => console.log('onRequestSearch')}
style={{
margin: '0 auto',
maxWidth: 800
}}
/>
</div>
</div>
)} ;
推荐阅读
- javascript - “选择”是 JavaScript 中的保留关键字吗?
- javascript - 如何仅在 Safari 中使用 userAgent 显示图像?
- python - 如何检查python代码的长度?
- ios - 应用程序图标不再适用于 iOS (Xamarin)
- python - 在 Windows 上执行 python 脚本并使用 php wamp 获取输出
- ffmpeg - FFMPEG - 转换具有多个音频和字幕的视频
- python - 在 SqlAlchemy 中继承 __tablename__
- angular - 如何更改 Angular Material Slider 的长度?
- docker - 在基于 ubuntu 的 Docker 中构建 rav1e ffmpeg 失败
- r - 标准化或标准化 R 中的分贝对数刻度