Я создаю s crypto-приложение, где я хочу изменить цвет фона на красный, когда цена понизится и будет зеленой, когда цена повысится, а затем через 2 секунды измените фон обратно на нормальный режим с помощью setTimeout.
Я попробовал два разных метода, чтобы по крайней мере изменить backgroundColor, но в обоих случаях я получил следующую ошибку:
Вы попытались установить ключ backgroundColor со значением # ffe5e5 на объект, который должен быть неизменным и заморожен.Я задал отдельный вопрос для того же, но по какой-то причине ответ, который я получил, не был убедителен.
Afterwords, я попробовал другой подход (тот, который не позволяет использовать StyleSheet), но я все равно получаю ту же ошибку.
Я помещаю здесь свой новый код (вы можете ссылаться на мой предыдущий код из вопроса)
Сначала я объявил объект в глобальной области, подобной этой
var upperRow = {
display: "flex",
flexDirection: "row",
marginBottom: 5,
backgroundColor: "white"
}
class CoinCard extends Component {
, то я попытался изменить цвет фона следующим образом
componentWillReceiveProps(nextProps) {
if (this.props.coinPrice != nextProps.coinPrice ) {
if (this.props.coinPrice > nextProps.coinPrice) {
upperRow["backgroundColor"] = "#ffe5e5";
}
}
, а затем назначить стили, подобные этому
return (
<View style={container}>
<View style={upperRow}>
[Вопрос:] Как я могу изменить стиль динамически?