Реагировать — передавать реквизит детям

#reactjs

Вопрос:

Я пытаюсь найти правильный способ написания компонента TableWrapper. Я хочу, чтобы при его использовании структура была примерно такой. Не могли бы вы, пожалуйста, помочь мне, как передать реквизит от родителя детям?

           <TableWrapper
        loadData={loadData}
        data={data}
        isExternalOpen={isExternalOpen}
        setIsExternalCreate={setIsExternalCreate}
        setIsExternalOpen={setIsExternalOpen}
        showEmptyState={false}
        limit={4}
        loading={loading}
      >
        {({ dispatchHandler, isOpen, setIsOpen, data, previousPage, nextPage }: TableWrapperComponentInterface) => (
          <>
            <Table
              title={title}
              onCreateHandler={onCreateHandler}
              columns={columns}
              data={data}
              previousPage={previousPage}
              nextPage={nextPage}
              actions={[actions]}
            />
            <TableModal isOpen={isOpen} setIsOpen={setIsOpen} setIsCreate={setIsCreate}>
              <>Doesn't matter</>
            </TableModal>
          </>
        )}
      </TableWrapper>
 

У меня есть что-то вроде этого, но это кажется неправильным. Я был бы рад, если бы кто-нибудь мог мне помочь. 🙂

 export const TableWrapper = (props: TableWrapperInterface) => {
  const {
    children,
    loadData,
    setIsExternalCreate,
    setIsExternalOpen,
    emptyStateAddButtonTitle,
    emptyStateButton = true,
    emptyStateText,
    showEmptyState,
    loading,
    data,
    limit = 10,
    isExternalOpen,
  } = props

  ...
  
  const Component = children


  return (
    <>
      <div>
        <Component
      dispatchHandler={dispatchHandler}
      setIsOpen={setIsExternalOpen}
      isOpen={isExternalOpen}
      data={sendData}
      loadData={loadData}
      previousPage={previousPage}
      nextPage={nextPage}
    />
      </div>
    </>
  )
}

export default TableWrapper
 

Комментарии:

1. Какая у вас проблема? Если вы не хотите «сверлить», вы всегда можете использовать контекст

2. Я не совсем уверен, как использовать контекст в этом случае. Что такое «буровая установка»?

3. Сверление опоры-это когда вы добавляете опору к каждому родителю в дереве, пока не дойдете до компонента, в котором вам нужна опора. Ссылка выше должна объяснить, как работает контекст.

4. О, хорошо. Так, например, Formik использует контекст?

5. Я обновил свой вопрос.