Задать вопрос
@kiberlain

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

Есть ссылка в одном компоненте с аттрибутом например data-title="на старт"
Как мне кликом достать значение этого атрибута и отобразить в произвольном месте сайта, в другом компоненте?
  • Вопрос задан
  • 162 просмотра
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@shsv382
Изучай state management. У тебя есть родительский компонент и два дочерних, в одном - кнопка, в другом - то, что надо изменить.
<Parent>
    <Child1><a data-title="на старт" /></Child1>
    <Child2></*что-то для изменения, например param*/></Child2>
</Parent>

в state родителя должен быть нужный параметр, изменяемый по нажатию кнопки, а также функция-обработчик нажатия кнопки. Функцию-обработчик передаешь как prop в Child1, а параметр из state - в Child2.
class Parent extends React.Component {
    state = {
        naStart: false
    }

    handleClick = (event) => {
        if (event.target.dataTitle === "на старт") {
            this.setState({naStart: true})
        }
    }

    render() {
        return (
            <div>
                <Child1 onClick={this.handleClick} />
                <Child2 param={this.state.naStart} />
            </div>
        )
    }
}

Либо изучай redux, там более гибкое управление состоянием
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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