Reactjs 如何使用react钩子为状态设置函数?
我正在使用类组件,我想切换到函数组件(使用钩子)。当我使用类组件并单击网格的行时,将显示模式。当我使用带有钩子的函数组件时,它显示错误“模态不是函数”Reactjs 如何使用react钩子为状态设置函数?,reactjs,react-hooks,Reactjs,React Hooks,我正在使用类组件,我想切换到函数组件(使用钩子)。当我使用类组件并单击网格的行时,将显示模式。当我使用带有钩子的函数组件时,它显示错误“模态不是函数” 类MyGrid扩展组件{ 状态={ 加载:false, 行数据:[], columnDefs:[{headerName:'Title',field:'Title'},{headerName:'Count',field:'Count'}], 模态:空 } //事件单击行 onRowSelected=(lol)=>{ this.state.modal
类MyGrid扩展组件{
状态={
加载:false,
行数据:[],
columnDefs:[{headerName:'Title',field:'Title'},{headerName:'Count',field:'Count'}],
模态:空
}
//事件单击行
onRowSelected=(lol)=>{
this.state.modal(lol)
}
render(){
返回(
this.setState({modal:callback})}
/>
{
params.api.sizeColumnsToFit()
}}
onRowSelected={this.onRowSelected}
/>
)
}
}
导出默认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
功能MyGrid(道具){
const[modal,setModal]=useState(null)
const[rowData,setRowData]=useState([])
const columnDefs=[{headerName:'Title',field:'Title'},{headerName:'Count',field:'Count'}]
//事件单击行
函数onRowSelected(lol){
模态(lol)
}
返回(
setModal(回调)}
/>
{
params.api.sizeColumnsToFit()
}}
onRowSelected={onRowSelected}
/>
)
}
导出默认MyGrid
请帮我翻译这段代码。模态为空
function onRowSelected(lol){
modal(lol)
}
转换成这个
function onRowSelected(lol){
setModal(lol)
}
谢谢你的回复。我试过了,但没用。getOnOpen props是一个带有数据的函数,我需要从这个.state.modal(lol)(类组件)转换为函数组件
function onRowSelected(lol){
setModal(lol)
}