@Benchstyle

Как передавать свойства между одностраничными компонентами?

Только начал изучать реакт, наткнулся на информацию, что все компоненты должны хранится в отдельных папках. Допустим есть input, button. Пытаюсь по клику на кнопку получить value от input, получаю Cannot read property 'value' of undefined - думаю, что неправильно получаю свойство от Message. Что я делаю неверно? :

class Message extends React.Component {
    constructor(props) {
        super(props);
        this.state = {value: ''};
        this.handleChange = this.handleChange.bind(this);
    };

    handleChange(event) {
        this.setState({value: event.target.value});
    };

    render() {
        return (
            <input type="text" value={this.state.value} onChange={this.handleChange}/>
        );
    };
} 

export default Message;

class MessageButton extends React.Component {
    constructor(props) {
        super(props)
        this.handleClick = this.handleClick.bind(this);
    }

    handleClick() {
        console.log(Message.state.value);
    }

    render() {
        return (
            <button onClick={this.handleClick}>Your message</button>
        );
    }
}

export default MessageButton;
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
@ned4ded
Верстка, Фронтенд
Вам нужен либо стор (Mobx, Redux), либо родительский компонент, внутри которого будет происходит взаимодействие двух дочерних

console.log(Message.state.value);

Здесь вы обращаетесь к статическому свойству класса Message, конечно это не будет работать
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы