reactjs - 如何使用 react-hooks 设置状态功能?
问题描述
我正在使用类组件,我想切换到功能组件(使用挂钩)。当我使用类组件并单击网格的行时,将显示模态。当我使用带有钩子的函数组件时,它显示错误“模态不是函数”
class MyGrid extends Component {
state = {
loading: false,
rowData: [],
columnDefs: [{headerName: 'Title', field: 'title'}, {headerName: 'Count', field: 'count'}],
modal: null
}
//event click on row
onRowSelected = (lol) => {
this.state.modal(lol)
}
render(){
return (
<>
<Modal
getOnOpen={callback => this.setState({modal: callback})}
/>
<div style={{ height: '500px' }}>
<Grid
columnDefs={this.state.columnDefs}
rowData={this.state.rowData}
onGridReady={params => {
params.api.sizeColumnsToFit()
}}
onRowSelected={this.onRowSelected}
/>
</div>
</>
)
}
}
export default MyGrid
还有我的功能组件。是错误
function MyGrid(props) {
const [modal, setModal] = useState(null)
const [rowData, setRowData] = useState([])
const columnDefs = [{headerName: 'Title', field: 'title'}, {headerName: 'Count', field: 'count'}]
//event click on row
function onRowSelected(lol){
modal(lol)
}
return (
<>
<Modal
getOnOpen={callback => setModal(callback)}
/>
<div style={{ height: '500px' }}>
<Grid
columnDefs={columnDefs}
rowData={rowData}
onGridReady={params => {
params.api.sizeColumnsToFit()
}}
onRowSelected={onRowSelected}
/>
</div>
</>
)
}
export default MyGrid
请帮我
解决方案
这段代码。模态为空
function onRowSelected(lol){
modal(lol)
}
转换成这个
function onRowSelected(lol){
setModal(lol)
}
推荐阅读
- c# - 为绕过令牌触发 hCaptcha 回调函数
- hbase - MAPR 性能属性在集群中对大量数据没有贡献
- javascript - Node-Red 当前值与先前值之间的差异
- python - 使用 ActiveDirectoryInteractive 与 Azure 的 ODBC 连接
- jquery - 如何在每轮之后创建一个显示位置 1、2、3 的列
- mysql - 行构造函数表达式选择不使用索引
- laravel - 在 Octobercms 插件中保存文件返回错误
- javascript - HTML/JQuery 页面中的动态 AEM 体验片段显示
- java - 如何创建一个函数来将 JSON 响应映射到对象列表
- google-cloud-storage - 有什么简单的方法可以远程管理位于不同位置的 LED 广告牌