React Как передать переменную компонента .jsx в другой компонент jsx

У меня есть компонент bar.jsx:

render(){
        return(
          <div className = "bar">
            <button className = "button" onClick = {() => this.setState({view: 1})}>1</button>
            <button className = "button" onClick = {() => this.setState({view: 2})}>2</button>
            <button className = "button" onClick = {() => this.setState({view: 3})}>3</button>
            <button className = "button">Wallet</button>          
          </div>

И у меня есть еще один компонент, где я хочу получить эти данные:

main.jsx:

render() {
    return (
      <div className = "App">
        <div className = "header"></div>
        <bar></bar>
        <View></View>
      </div>
    );
  };

Как разобрать значение this.setState({view: 1}) для моего компонента View?

вы должны использовать «Поднятие состояния вверх» reactjs.org/docs/lifting-state-up.html

barzin.A 20.12.2020 19:51
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
Раскрытие чувствительных данных
Раскрытие чувствительных данных
Все внешние компоненты, рассмотренные здесь до сих пор, взаимодействуют с клиентской стороной. Однако, если они подвергаются атаке, они не...
Зод: сила проверки и преобразования данных
Зод: сила проверки и преобразования данных
Сегодня я хочу познакомить вас с библиотекой Zod и раскрыть некоторые ее особенности, например, возможности валидации и трансформации данных, а также...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Руководство ChatGPT по продаже мини JS-файлов
Руководство ChatGPT по продаже мини JS-файлов
JS-файл - это файл, содержащий код JavaScript. JavaScript - это язык программирования, который в основном используется для добавления интерактивности...
2
1
207
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Для этого вам нужно поднять свое состояние до main.jsx. Итак, в main.jsx вы создаете состояние {view: 0} или другое значение по умолчанию. Затем вы создаете функцию, которая устанавливает это состояние (вы не можете использовать this.setState в этом случае), это в основном оболочка вокруг this.setState. Затем вы передаете эту функцию своему bar компоненту.

Компонент Bar прикрепляет его к кнопкам вместо () => this.setState({view: 1}), которые у вас есть.

Из основного компонента вы передаете view в качестве реквизита.

Когда пользователь нажимает кнопку, вызывается функция изменения, функция изменения вызывает setState в основном компоненте. Состояние основного компонента изменяется, и он изменяет реквизит для компонента View. Компонент просмотра отображает новые данные.

Подробнее об этом можно прочитать здесь - https://reactjs.org/docs/lifting-state-up.html

Другие вопросы по теме