小编SAK*_*URA的帖子

如何在 UseEffect 中使用 prop 函数?

我想在 UseEffect 内部调用一个 prop 函数。以下代码有效:

useEffect(() => {
    props.handleClick(id);
  }, [id]);
Run Code Online (Sandbox Code Playgroud)

但是 lint 抱怨props不是依赖项。

如果我这样做,那么代码将不再有效,并且我有最大的重新渲染错误:

  useEffect(() => {
        props.handleClick(id);
      }, [id, props]);
Run Code Online (Sandbox Code Playgroud)

我该如何解决皮棉问题?

示例代码:

父组件

const ParentGrid = ({rows, columns}) => {

  const [selection, setSelection] = useState(null);

  const handleClick = selectedRows => {
    setSelection(selectedRows.map(i => rows[i]));
  };

  return (
      <ChildGrid
        columns={columns}
        data={data}
        handleClick={handleClick}
      />
Run Code Online (Sandbox Code Playgroud)

子组件

const ChildGrid = props => {
  const {data, handleClick, ...rest} = props;

  useEffect(() => {
    handleClick(selectedRows);
  }, [selectedRows]);
Run Code Online (Sandbox Code Playgroud)

javascript frontend lint reactjs

5
推荐指数
2
解决办法
3541
查看次数

React-Table:仅选择单行,禁用多行选择

我使用单选按钮来选择行。如何禁用多行选择以便一次只能选择一行?

我正在使用selectedFlatRows,但它允许选择多行。

const Table = props => {
  const {
    getTableProps,
    getTableBodyProps,
    headerGroups,
    page,
    prepareRow,
    selectedFlatRows,
  } = useTable(
    {
      columns,
      data: props.linkedProducts,
    },
    useSortBy,
    usePagination,
    useRowSelect,
    hooks => {
      hooks.visibleColumns.push(columns => [
        {
          id: 'selection',
          disableGlobalFilter: true,
          accessor: 'selection',
          Cell: ({row}) => (
            <RadioButton
              {...row.getToggleRowSelectedProps()}
            />
          ),
        },
        ...columns,
      ]);
    }
  );
Run Code Online (Sandbox Code Playgroud)

reactjs react-table react-table-v6 react-table-v7

3
推荐指数
1
解决办法
4593
查看次数