Взаимодействие между компонентами в reactjs

Мне нужно понять, как поднять состояние и методы классов до родительского компонента, если есть несколько компонентов и единственный общий родительский компонент. В моем примере кода некоторые кнопки отображаются в виде списка «li». элементы. Щелчок по любой кнопке должен изменить текст в текстовом блоке, но не меняет его. Пожалуйста, помогите мне найти мою ошибку. Вот мой код:

class TextBlock extends React.Component {
    render() {      
         return <div id = "textDiv">{this.props.text}</div>;
     }
 }

class MyButton extends React.Component { 
    render() {          
        return <button id = {this.props.id} className = "mybutton"> 
       {this.props.label}</button>;  
    }
}

class ButtonsList extends React.Component { 
    clickButton=(e)=> {
    this.props.handlerButtons(e);
}

    render() {      
        return(
            <ul>
              {buttons.map((button)=> <MyButton id = {button.id} label= 
              {button.label} onClick = {this.clickButton}/>)}         
          </ul>
         ); 
    }
}

class ParentComponent extends React.Component {
    constructor(props) {
        super(props);      
        this.state = {text: "My text"};   
}

    handlerButtons=(e)=> {
    this.setState({text: "The changed text"});
    }   

    render() {      

        return( <div>
                 <TextBlock text = {this.state.text}/>
                 <ButtonsList handlerButtons = {this.handlerButtons}/>                    
            </div>
          );
    }
}
const buttons=[{id: "id1", label: "1"}, {id: "id2", label: "2"},
{id: "id3", label: "3"}, {id: "id4", label: "4"}, {id: "id5", label: "5"}];

 ReactDOM.render(
    <ParentComponent/>,     
     document.getElementById("root")
); 
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вам нужно добавить onClick к вашей кнопке в компоненте MyButton, который отсутствует

class MyButton extends React.Component { 
    render() {          
        return <button id = {this.props.id} className = "mybutton" onClick = {this.props.onClick}> 
       {this.props.label}</button>;  
    }
}

Н.П. Пожалуйста, проголосуйте за и примите мой ответ, если он решил вашу проблему.

Hemadri Dasari 27.08.2018 15:53

Как проголосовать? Объясните мне, что мне делать и как, потому что я новичок на этом сайте и не знаю правил.

Irina 29.08.2018 15:50

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