Как получить доступ к ловушке Framer из другого компонента

Я настроил useState Hook в файле carousel.tsx

export function Carousel({ children }) {
    //Set Active State Carousel Item
    const [active, setActive] = React.useState("default")

    //Create Props for Carousel items
    function makeProps(title) {
        return {
            title: title,
            active: active,
            onTap: () => {
                setActive(title)
            },
        }
    }
  .
  .
  .

    return (
        <CarouselItem {...makeProps(child.props.name)} />
        <CarouselItem {...makeProps(child.props.name)} />
        <CarouselItem {...makeProps(child.props.name)} />
    )
}

Теперь на моем App.tsx у меня есть фрейм, нажав на который я хочу сбросить до состояния по умолчанию.

export function defaultState(): Override {
    return {
        onTap: () => {
            //Reset to default state
        },
    }
}

Как мне получить доступ к состоянию ловушки из App.tsx, чтобы я мог сбросить состояние?


person ptamzz    schedule 15.05.2020    source источник


Ответы (1)


Если вы хотите использовать React без какой-либо библиотеки управления состоянием, такой как Redux или Mobx. У вас есть два пути:

  1. переместите useState в App.tsx и передайте setActive любому дочернему компоненту
  2. аналогичен первому способу, но хранит данные только в контексте, это полезно, если вам нужно передать данные в глубокий компонент

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

person IT's Bruise    schedule 15.05.2020