@D_K_D
Junior

Как изменить значение у обоих компонентов?

Есть два компонента "My1" и "My2", есть функция myFunction(). Компоненты не имеют общего предка и не взаимосвязаны. Оба компонента похожи и ссылаются на одну и тужу функцию. Как сделать так , чтобы при нажатии на кнопку любого из компонента значения менялись у обоих компонентов? То есть, у обоих компонентов должно поменяться слово "Не нажал" на "Нажал" при нажатии на любую кнопку.
Вот первый компонент:

import React from 'react';
import Myfunction from "./myFunction.js" ; // здесь лежит функция

class My1 extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
        name: "Не нажал" 
    };
  }
  NewStateOne = () => {
    Myfunction(this.state);
    console.log(this.state.name)
    this.setState({name: this.state.name})
  }
  render () {
    return(
      <div>
        <div>{this.state.name}</div>
        <button onClick={this.NewStateOne}>Click</button>
      </div>
    )
  }
}
export default My1;

Вот второй компонент:

import React from 'react';
import Myfunction from "./myFunction.js" ; // здесь лежит функция

class My2 extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
        name: "Не нажал" 
    };
  }
  NewStateTwo = () => {
    Myfunction(this.state);
    console.log(this.state.name)
    this.setState({name: this.state.name})
  }
  render () {
    return(
      <div>
        <div>{this.state.name}</div>
        <button onClick={this.NewStateTwo}>Click</button>
      </div>
    )
  }
}
export default My2;

Вот функция:
const Myfunction = (props) => {
  props.name = "Нажал";
  return props.name;
} 
export default Myfunction;
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
@Gary_Ihar
JS *овнокодер
Я бы на вашем месте воспользовался Redux'ом.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
25 нояб. 2024, в 18:39
30000 руб./за проект
25 нояб. 2024, в 18:35
30000 руб./за проект
25 нояб. 2024, в 18:33
10000 руб./за проект