DevGang
Авторизоваться

Простой способ раскрыть состояние внутреннего компонента в React

Рассмотрим сценарий, в котором у вас есть компонент DatePicker с его внутренним состоянием, и вы хотите предоставить внешним компонентам возможность доступа к этому состоянию. Этого можно добиться, создав функцию обратного вызова, часто называемую реквизитом, позволяющую внешним компонентам взаимодействовать с DatePicker. Вот пример:

const DatePicker = ({ maxDate = maxDateValue, log = true, consumeDate = () => {} }) => {
  const [value, setValue] = React.useState(() => {
    consumeDate(new Date()); // Expose the initial value
    return new Date();
  });
  if (log) console.log('Date picker value...', value);

  return (
    <Container>
      <Calendar
        value={value}
        onChange={(vl) => {
          setValue(vl);
          consumeDate(vl); // Expose the updated value
        }}
        minDate={new Date()}
        maxDate={maxDate}
      />
    </Container>
  );
};

В этом примере компонент DatePicker предоставляет свойство ConsumerDate, которое внешние компоненты могут использовать для доступа к внутреннему состоянию компонента. Такой подход облегчает обмен состоянием компонента и открывает двери для многочисленных возможностей.

Вот как это работает:

Свойство ConsumerDate передается компоненту DatePicker, который представляет собой функцию, которую можно определить в любом родительском компоненте.

Внутри компонента DatePicker эта функция вызывается во время инициализации и при каждом изменении значения даты. Это позволяет внешним компонентам наблюдать начальные и обновленные значения.

Событие onChange компонента Calendar запускает обновление внутреннего состояния (значения) в DatePicker. Он также вызывает ConsumerDate, предоставляя новое значение.

Источник:

#React
Комментарии
Чтобы оставить комментарий, необходимо авторизоваться

Присоединяйся в тусовку

В этом месте могла бы быть ваша реклама

Разместить рекламу