Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何使用react钩子为状态设置函数?_Reactjs_React Hooks - Fatal编程技术网

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)
  }