首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用react-hooks为状态设置函数?

如何使用react-hooks为状态设置函数?
EN

Stack Overflow用户
提问于 2019-08-30 14:58:42
回答 1查看 32关注 0票数 0

我使用的是类组件,我想切换到函数组件(使用钩子)。当我使用class组件并点击网格的行时,模式将会显示。当我使用带钩子的函数组件时,它显示错误"modal is not a function“

代码语言:javascript
复制
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

和我的函数组件。这是错误的

代码语言:javascript
复制
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

请帮帮我

EN

回答 1

Stack Overflow用户

发布于 2019-08-30 15:00:21

此代码。模式为空

代码语言:javascript
复制
  function onRowSelected(lol){    
     modal(lol)
  }

转换为此格式

代码语言:javascript
复制
function onRowSelected(lol){    
     setModal(lol)
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57721949

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档