У меня проблема с моей переменной на Reaction-native. Когда я отображаю свою переменную с console.log()
, все хорошо, я получаю ее содержимое. Но когда я использую его с map
, моя переменная не определена. Вот мой код.
const ServiceAction = (props) => {
const { services } = props;
console.log("Services:", services)
return services.map((service, index) => {return <Text key={index}>{service.name}</Text>})
}
Так что здесь сервисы не определены, когда я использую их с картой, но не когда я их отображаю.
Я вызываю свою функцию как раз перед.
const Dashboard: () => React$Node = (props) => {
// const [state, dispatch] = React.useReducer(userReducer, props.navigation.getParam("user"));
// const ip = props.navigation.getParam("ip");
const ip = "192.168.1.37";
const [state, dispatch] = React.useReducer(userReducer, initialStateUser);
const [services, setServices] = React.useState([]);
const [serviceAction, setServiceAction] = React.useState("Default");
React.useEffect(() => {
fetch(`http://${ip}:8080/about.json`)
.then((response) => {return response.json()})
.then((data) => setServices(data.server.services))
.catch((err) => console.log(err))
},[])
return (
<LinearGradient start={{x: 0, y: 0}} end={{x: 1, y: 1}} colors={['rgba(58,115,215,1)', 'rgba(44,120,215,1)', 'rgba(68,116,213,1)', 'rgba(47,105,191,1)', 'rgba(131,75,191,1)', 'rgba(198,98,237,1)']} style={styles.linearGradient}>
<Image style={{width: 400, height: 50}} source={require('../assets/logo.png')}/>
<ServiceAction services={services} />
</LinearGradient>
)
}
Если у кого-то есть идея ...
РЕДАКТИРОВАТЬ:
Служба в формате JSON
Services = [{
name: 'toto'
}, {
name: 'titi'
}
]