case 'BASKET':
return {
...state,
products: state.products.map(n => n.name === action.payload
? { ...n, basket: true }
: n
),
};
onPress={() => this.props.addToBasket.bind(this, this.props.product.name)}
onPress={() => this.props.addToBasket(this.props.product.name)}
const showProductsList = (type, maxlength) => { <...> if(product.basket == type & currentLength < maxlength) {
showProductsList("true", 4)
true
не будет равно "true"
, убираем кавычки: showProductsList(true, 4)
.sortByPrices
и sortByDuration
? Дайте-ка попробую угадать - принимают в качестве параметра массив, и его же сортируют. Если так, то ответ на вопрос "куда копать" очевиден - копайте основы js, какие бывают типы данных, в чём их особенности. Массивы являются объектами, а объекты при присваивании / передаче в функцию / возврате из функции не копируются, копируются ссылки на них. То есть, несколько раз сортируется один и тот же массив - естественно, что при выводе всегда будет отображаться результат последней сортировки. Делайте копии массива, сортируйте копии, передавайте эти копии в экземпляры TicketsList
, типа tickets={sortByPrices([...visibleData])}
. Насколько он сложен вообще?
Много ли отличии?
class App extends React.Component {
state = {
isTimerActive: false,
}
setTimerActive = isTimerActive => {
this.setState(() => ({ isTimerActive }));
}
onClick = () => {
this.setTimerActive(true);
setTimeout(this.setTimerActive, 60000, false);
}
render() {
const { isTimerActive } = this.state;
return(
<button disabled={isTimerActive} onClick={this.onClick}>
{isTimerActive ? 'отправлено' : 'отправить повторно'}
</button>
);
}
}
.container {
background: #224B7A;
}
.container.active {
background: #fff;
}
state = {
active: false,
}
toggleActive = ({ type }) => {
this.setState(() => ({
active: type === 'focus',
}));
}
<div className={`container ${this.state.active ? 'active' : ''}`}>
...
<input onFocus={this.toggleActive} onBlur={this.toggleActive} />
<VictoryChart>
<VictoryAxis
style={{
axis: {
stroke: 'здесь ваш цвет',
},
}}
/>
</VictoryChart>
let data = {}; await fetch(url).then((res) => res.json()).then(json => { data = { temperature: json.main.temp } }) return data;
return fetch(url).then(r => r.json());
.this.setState(() => { return { weather: this.askForWeather.getNeededData() } });
this.askForWeather.getNeededData().then(weather => {
this.setState(() => ({ weather }));
});
<Main temperature={this.state.weather.temperature}/>
{this.state.weather && <Main temperature={this.state.weather.main.temp} />}
setCount(count => count + 1);
.что я делаю не так?
что я сделал не так?
ul
находятся i
и div
? Почему li
находится внутри div
? Разберитесь, кого чьим контентом можно и нельзя делать.#hide
должно браться из стейта, обновлять надо стейт; innerText
, который вы хотите получить - его также надо брать из стейта.selectItem
- подумайте, как его переписать так, чтобы вместо объекта события (который вам нужен ради свойства target
, да?) он принимал данные, на основе которых создан li
. <Placemark
options={{
iconLayout: 'default#image',
iconImageHref: 'здесь путь к вашей картинке',
}}
/>
<Spring
key={this.state.number}
from={{ opacity: 0, marginTop: 50 }}
to={{ opacity: 1, marginTop: 0 }}
>
{({ opacity, marginTop }) => (
<div style={{ opacity, marginTop }}>{this.state.number}</div>
)}
</Spring>
this.deleteItem = this.addItem.bind(this)
class App extends React.Component {
addItem = e => {
...
}
deleteItem = key => {
...
}
...
onChange = ({ target: { value, dataset: { objName, key } } }) => {
this.setState(({ [objName]: obj }) => ({
[objName]: {
...obj,
[key]: value,
},
}));
}
<input data-obj-name="fr" data-key="name" value={this.state.fr.name} onChange={this.onChange} />
<input data-obj-name="en" data-key="title" value={this.state.en.title} onChange={this.onChange} />
class App extends React.Component {
state = {
cells: Array(16).fill(null),
probability: 0.7,
}
onClick = e => {
const index = +e.target.dataset.index;
this.setState(({ cells, probability }) => ({
cells: cells.map((n, i) => i === index && !n
? (Math.random() < probability ? 'black' : 'red')
: n
),
}));
}
render() {
return (
<div className="ColorS">
{this.state.cells.map((n, i) => (
<div
className="ColorS-grid"
style={n && { background: n }}
data-index={i}
onClick={this.onClick}
/>
))}
</div>
);
}
}