Использование API-интерфейса Fetch при реагировании native, это не обновляет ui после обещанного обещания.Реагировать Наследственное состояние выборки не обновляется
Мы понимаем, что обещание разрешается, когда мы касаемся экрана (да, и обновляем ui с правильными данными).
Для работы на рабочем столе мы используем axios (https://github.com/mzabriskie/axios), и это разрешает нашу проблему.
Вот код:
продукта service.js
export class ProductsService {
constructor() {
}
getProductDetail(id) {
let url = 'http://myservice/product-detail/' + id;
return fetch(url)
.then((response) => response.json());
}
}
мой-component.js
export class MyComponent extends Component {
constructor(props) {
super(props);
this.state = {
product: {}
};
}
componentDidMount() {
let productService = new ProductsService();
productService.getProductDetail(1)
.then((productDetail) => {
console.log('updateProduct: ', productDetail);
this.setState({
product: productDetail
});
})
.catch((error) => {
console.error(error);
});
}
render() {
return (
<View>
<Text>{this.state.product.name}</Text>
</View>
);
}
}
Когда мы используем выборку, название продукта появляются только тогда, когда мы касаемся экрана устройства. Когда мы используем аксиомы, он работает.
Это ошибка?
Окружающая среда: Windows 10, Android 6, React Native 0,31
Я думаю, что это ошибка RN fetch. – deju