Javascript React嵌套子组件回调函数无法读取父';s状态(使用挂钩)

Javascript React嵌套子组件回调函数无法读取父';s状态(使用挂钩),javascript,reactjs,callback,react-hooks,react-table,Javascript,Reactjs,Callback,React Hooks,React Table,我正在动态创建一个按钮列(在可编辑表中)。我的用例是在选定的行上显示此按钮 Component: const [currData, setCurrData] = useState([]); const [tableCols, setTableCols] = useState([]); useEffect: ... cols.forEach((item, index) => { if (item.accessor

我正在动态创建一个按钮列(在可编辑表中)。我的用例是在选定的行上显示此按钮

    Component:
    const [currData, setCurrData] = useState([]);
    const [tableCols, setTableCols] = useState([]);

    useEffect:
    ...
        cols.forEach((item, index) => {
          if (item.accessor === 'addB') {
              cols[index].Cell = ({ cell }) => (
                (cell.row.index === lastRow) ? (
                <button id={cell.row.index} value={cell.row.usky} onClick={handleAddRow}>
                  Add Row
                </button>) : ''
              )
            }
          }
        );
        setTableCols (cols);

    ...
    useTable(
        {
            columns={tableCols}
            data={currData}
    ...
组件:
const[currData,setCurrData]=useState([]);
const[tableCols,setTableCols]=useState([]);
使用效果:
...
cols.forEach((项目,索引)=>{
如果(item.accessor=='addB'){
cols[index].Cell=({Cell})=>(
(cell.row.index==lastRow)(
添加行
) : ''
)
}
}
);
可设置的cols(cols);
...
有用的(
{
列={tableCols}
数据={currData}
...
当我在handleAddRow内打印currData时,它会显示[]。 问题:但是,在渲染中打印时,currData有一些值。 问:如何使回调函数在父级中处于访问状态? 欢迎提出任何其他建议

注意:我使用的是react表库,我所有的编码都使用钩子

编辑:
根据建议,我使用了部分解决问题的箭头函数。以下是问题:-

  • 回调箭头函数在以下情况下无法读取状态变量: 第一次点击按钮时调用。但第二次可以读取 继续
  • 在从父级到子级渲染期间,回调读取状态变量(控制渲染,即受控)的副本。 但不读取状态变量中的最新值。但是 变量显示渲染中显示的最新值

  • 单击事件的范围不限于您的组件。请绑定此,或使用箭头函数

    绑定:

    onClick={handleAddRow.bind(this)}

    箭头功能:


    onClick={()=>handleAddRow()}

    我使用的arrow函数部分解决了这个问题。这里有一些问题:-1.在单击按钮第一次调用时,回调arrow函数无法读取状态变量。但是可以从第二次开始读取。2.回调读取状态变量的副本(控制渲染,即受控)在从父级渲染到子级期间。但不读取状态变量中的最新值。但是状态变量显示渲染中显示的最新值。对可能出现的错误有何建议?感谢您的建议和输入。