Стоит ли этот массив, который я получаю, сохранять в state?Конечно.
Нормально ли state передавать как props компоненту?Непонятен вопрос.
Правильно ли делать так, как на картинке?Неправильно в state хранить вёрстку (строки 20-27). Остальное нормально.
<RemoveButton removeSection={() => removeEducationDiv(n)}/>}
как получить доступ к самой ячейке, чтобы изменить ей классНикак не надо получать, все классы вы должны навешивать в render() на основе данных, в этом вся суть Реакта. В обработчике вы изменяете state, автоматически вызывается render(), в DOM выгружается новое состояние. Вы работаете с данными, React работает с DOM.
class Home extends Component{
state = {items: []};
componentWillMount(){
axios.get('/api/test-thema')
.then(response => this.setState({item: Object.values(response.data)}));
}
render(){
const { user } = this.props;
return(
<div>
<Header/>
<h1>Добро пожаловать</h1>
<div>ФИО: {user.name}</div>
<div>Должность: </div>
<h3>Доступные тесты: </h3>
<ul>
{this.state.items.map((item) => (
<li key={item.id}><Link to='/test/'+{item.id}>{item.name}</Link></li>
))}
</ul>
<h3>Доступные тренинги: </h3>
</div>
);
}
}
payload: {value} // payload: {value: 'foo'}
payload: value // payload: 'foo'
Как решить данную проблему с React?Прочитать документацию.
return (
<div>
<h1> Hello</h1>
<section> Body</section>
</div>
)
может есть более изящное решение на React?Конечно есть. Вы в обработчике должны менять state, при изменении state будет вызван метод render и всё автоматически перерисуется. Вообще забудьте про работу с DOM, в этом весь смысл использования React.
class App {
constructor(props) {
super(props);
this.submitNote = this.submitNote.bind(this);
this.state = {
userInput: ``,
shouldShowElem: false,
};
}
submitNote() {
this.setState({
shouldShowElem: true,
});
}
render() {
return (
<div className="data">
Input here
{this.state.shouldShowElem &&
<div className="elem">{this.state.userInput}</div>
}
<button onClick={this.submitNote}>Click Me</button>
</div>
);
}
}
UsersList.propTypes = {
loading: PropTypes.bool
};