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
То есть, нужен хотя бы один type_id равный types.id? Тогда замените every на some.
Вот этот вот кусок вообще не понял:
Может всё-таки стоит ограничиться одним div'ом, выкинуть v-if, а класс вешать по условию? Как-нибудь так: