const classes = {
0: 'first',
[props.data.length - 1]: 'last',
};
className={classes[i]}
._react.default.createContext is not a function
гугл советует перейти на 16 версию реакта, но не думаю что это проблема старой версии
"react-redux": "^6.0.0"
React Redux 6.x requires React 16.4 or later.
сначала сделать запрос <...> после чего отрисовать страницу
нужного функционала нет <...> Сталкивался может кто с подобным и нарыл хорошую обертку для API?
сделатьКрасиво
, и вам самому не надо работать ни головой, ни руками? Нет, такого нет и не будет.onNoteAdd = {this.handleNoteAdd.bind(this)}
this.props.onNodeAdd(newNote)
const newNote = {
title: this.state.title,
text: this.state.text,
color: this.state.color
};
this.props.onNodeAdd(newNote);
this.props.onNoteAdd({ ...this.state });
.onChange = ({ target: { name, value } }) => {
this.setState({ [name]: value });
}
<input
name="title"
onChange={this.onChange}
...
/>
<textarea
name="text"
onChange={this.onChange}
...
/>
const DataList = ({ data }) => (
<div>
{data.map((item) => (
<div key={item.id}>
{item.title}
{item.round.map((r) => <div key={r.id}>{r.total}</div>)}
</div>
))}
</div>
);
<DataList data={props.data.slice(0, 3)} />
<Separator />
<DataList data={props.data.slice(3)} />
const RadioGroup = props => (
<div>
{props.items.map(n => (
<label className={`radio ${n.val == props.value ? 'selected' : ''}`}>
<input
type="radio"
name={props.name}
value={n.val}
checked={n.val === props.value}
onChange={props.onChange}
/>
<img src={n.img} />
</label>
))}
</div>
);
state = {
active: null,
}
toggle = ({ target: { dataset: { name } } }) => {
this.setState(({ active }) => ({
active: active === name ? null : name,
}));
}
<button onClick={this.toggle} data-name="collapse_1"></button>
<button onClick={this.toggle} data-name="collapse_2"></button>
<button onClick={this.toggle} data-name="collapse_3"></button>
toggle = ({ target: { dataset: { name } } }) => {
this.setState(({ collapse }) => ({
collaple: {
...collapse,
[name]: !collapse[name],
},
}));
}
autoFocus={true}
и отключать редактирование по событию blur. Так проблема с ненужным срабатыванием обработчика клика решится сама собой.this.setState(({ clientData }) => ({
clientData: {
...clientData,
active: !clientData.active,
},
}));
this.setState(({small}) => { return { small: small } });
small
, и осталось small
. Наверное, всё-таки новое значение должно быть !small
:this.setState(({ small }) => ({
small: !small,
}));
localStorage.setItem('reorder', JSON.stringify(this.reorder));
this.reorder = JSON.parse(localStorage.getItem('reorder')) || [];
['negative', '', 'positive'][Math.sign(article.total_comments.length) + 1]