Изменить фон компонентов с помощью ref - react native

Я только начал изучать React Native (из фона Android). Я хочу изменить цвет фона представления. Мне нужно сделать это без использования состояния / реквизита, так как я не хочу отображать его снова.

Я обновил представление и могу получить к нему доступ с помощью другой кнопки onPress ()

Как я могу изменить фон представления?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
1 060
2

Ответы 2

Установите реф:

ref = {component => this.myref = component}

и установите фон с помощью setNativeProps

this.myref.setNativeProps({
    style:{backgroundColor: '#3fba29'}
});

Надеюсь, это кому-то поможет :)

Прежде чем использовать его, попробуйте решить вашу проблему с помощью setState.

https://reactnative.dev/docs/direct-manipulation

В единственном значении это очень просто

ChangeBackground(){
 this.setState({
  backgroundColor:'blue'
 )}
}
render() {
 return (  
<View onPress = {()=>this.ChangeBackground()}style = {{backgroundColor:'red'}}>
  ....
 </View>

В данных массива вы должны работать со значением индекса. Обновить цвет фона с помощью индекса или идентификатора

что-то вроде этого,

const original = this.state.array;
const single_array = this.state.array.find(
    x => x.id === id,
);
single_array.backgroundColor = 'blue';
original[index] = single_array;
this.setState({
    array: original,
});

Другие вопросы по теме