отображается если только в дате было одно activities, а там где их было несколько он ничего не отображает
<div class="event-data" v-if="date.activities && date.activities.length > 0 && date.activities.every(n => n.type_id == types.id)"></div> <div class="event-data-empty" v-else=""></div> <div class="event-data-empty" v-if="!date.activities || date.activities.length == 0"></div>
<div :class="date.activities && date.activities.length > 0 && date.activities.some(n => n.type_id == types.id) ? 'event-data' : 'event-data-empty'"></div>
class Player extends React.Component {
state = {
// к чёрту flag, давайте более понятное имя использовать
isPlaying: false
}
componentDidMount() {
// пусть путь к файлу будет задаваться извне компонента
this.audio = new Audio(this.props.src);
}
componentDidUpdate(prevState) {
if (prevState.isPlaying !== this.state.isPlaying) {
this.audio[this.state.isPlaying ? 'play' : 'pause']();
}
}
onClick = () => {
this.setState({
isPlaying: !this.state.isPlaying
});
}
render() {
return (
<div onClick={this.onClick}>
<i className={`fa fa-${this.state.isPlaying ? 'pause' : 'play'} fa-2x`}></i>
</div>
);
}
}
componentDidUpdate(prevState) {
if (prevState.flag !== this.state.flag) {
this.audio[this.state.flag ? 'play' : 'pause']();
}
}
$emit('town-change', /* ну а здесь id выбранного города... ну или ничего, всё равно вы его из localStorage достать можете */)
v-html="sup(good.min_price.toString())"
или v-html="sup(good.min_price.toFixed(2))"
v-html="sup(item.b || '')"
. Или можно вообще не выводить элемент, у которого нет b: v-if="'b' in item"
Теперь данные прилетают в generateTree
Копируем исходный объект в пустой (чтобы не испортить исходный), затем затираем исходные activities отфильтрованными. Наверное, так.