Becausethis.props
andthis.state
may be updated asynchronously, you should not rely on their values for calculating the next state.
this.setState(
(state) => ({test: !state.test}),
() => console.log(this.state.test)
);
this.state = {...props}
this.state.props.foo
, можно будет обращаться через this.props.foo
.как теперь передать данные в эти компоненты из него?
<Route exact path='/component' render={() => <myComponent prop={value}/>} />
как сделать так, чтобы при загрузке заходило сразу на страницу '/component', а не на '/'?
<Redirect exact from='/' to='/component'/>
На данный момент я знаю, что выводить данные можно в формате либо только года , либо только месяца, либо только дни.Выводить можно в любом формате, который понимает moment.js. Там есть всё, что душе угодно: https://momentjs.com/docs/#/displaying/format/.
В зависимости от кол-ва дней.https://momentjs.com/docs/#/displaying/difference/
Есть ли метод, который делает такое ?Нет, но в javascript есть условные операторы. Вам нужен такой:
if () {}
как проверять что доскроллили до очередного элемента?Сравнивать позицию скролла и этого элемента на странице. В чём вопрос-то конкретно?
Допустим скролл можно слушать так:componentDidMount() { window.addEventListener('scroll', this.handleScroll); }
Стоит ли этот массив, который я получаю, сохранять в 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'