Jeket
@Jeket

Как организовать взаимодействе нескольких компонентов в React js?

Приветствую!

Есть приложение:

import React from 'react';
import Point from './point';
import Line from './line';

function App() {
  return (
    <div className="App">
      <Point />
      <Line  />
    </div>
  );
}

export default App;


Компоненты:
class Line extends Base {
  render() {
    return (
      <button>
       Линия
      </button>
    );
  }
}

И
class Point extends Base {
  render() {
    return (
      <button>
       Точка
      </button>
    );
  }
}


import React from 'react';

class Base extends React.Component {
  constructor(props){
    super(props);
    this.state = {isToggleOn: true};
  }

  render(){
    return (
      <input/>
    )
  }
}

export default Base;


Как сделать так, чтобы при нажатии на кнопку "Линия" делать disable кнопки "Точка".
Подразумевается, что кнопок будет много и надо при нажатии одной делать disable остальных.

Пробовал на Redux или через родителя this.setState, но ничего не получилось.
  • Вопрос задан
  • 69 просмотров
Решения вопроса 1
hzzzzl
@hzzzzl
function App() {
  const [current, setCurrent] = React.useState(null)
  
  return (
    <div className="App">
      <Point disabled={current !== 'Point'} onClick={() => setCurrent('Point')} />
      <Line  disabled={current !== 'Line'} onClick={() => setCurrent('Line')} />
    </div>
  );
}


class Line extends Base {  // какой еще Base?
  render() {
    return (
      <button disabled={this.props.disabled} onClick={this.props.onClick}>
       Линия
      </button>
    );
  }
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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