При запуске приведенного ниже кода в реактивном режиме я получаю сообщение об ошибке «buttonColor только для чтения».
Я просматривал документацию из различных мест на useState, но все еще не уверен, что является причиной этой конкретной ошибки.
Я ожидаю, что кнопка будет чередоваться между «зеленым» (начальное состояние) и «красным» после каждого последующего нажатия, но на первом рендере будет только зеленый, а затем я получаю сообщение об ошибке послепервый кран.
import React, {useState} from 'react';
import {StyleSheet, Text, View, TouchableOpacity} from 'react-native';
const ColorSquare = () => {
const[buttonColor, setColor] = useState('green');
const changeColor = () => {
if (buttonColor='green') {
setColor('red')
} else if (buttonColor='red') {
setColor('green')
} else {
setColor('blue')
}
}
return (
<View style={styles.container}>
<TouchableOpacity
style={{backgroundColor:buttonColor, padding: 15}}
onPress={()=>changeColor()}
>
<Text style={styles.text}>Change Color!</Text>
</TouchableOpacity>
</View>
);
};
const styles = StyleSheet.create({
text:{
color:'white'
},
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#fff',
},
});
export default ColorSquare;