1
使用Fetch API對本機做出反應,這不會在完成承諾後更新ui。React本機獲取狀態不更新
當我們觸摸屏幕(是的,並用正確的數據更新UI)時,我們意識到承諾的解決方案。
對於workarround,我們使用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>
);
}
}
當我們使用抓取,產品名稱纔會顯示我們觸摸設備屏幕。 當我們使用axios時,它工作。
這是一個錯誤?
環境:Windows 10,安卓6,陣營本地0.31
我認爲這是RN獲取錯誤。 – deju