响应本机图像裁剪选择器网络问题.... 使用 axios 命中 api

时间:2021-05-21 04:17:02

标签: react-native

Ios 工作正常 Android = 网络问题

我被困了这么多天 RN 版本 = 0.63.4 Rn 作物选择器版本 = 0.36.1

来自研发 我做了所有的 slotion 就像

  1. 升级版鳍状肢
  2. 评论翻转线 = android/app/debug/flipeerfile

这里附上 axios 的代码,图片上传文件

  1. axios 代码 =
minSdkVersion
  1. 这是文件代码 =

我正在使用钩子......我想用路径将多个图像存储在数组中

// import axios from "axios"; // import { SiteUrl } from '../config/Setting'; // var instance = axios.create({ // baseURL: 'http://192.168.1.90:3000/api/v1/user-service/users/', // timeout: 60000, // headers: { // 'Content-Type': 'application/json', // 'Access-Control-Allow-Origin': '*', // 'Access-Control-Allow-Headers': '*', // }, // }); // instance.interceptors.request.use(function (config) { // console.log('config is ',config) // return config; // }, function (error) { // return error; // }); // instance.interceptors.response.use(function (response) { // // console.log('response of axios',response) // return response; // }, function (error) { // console.log('error of axios',error) // return error; // }) // export default instance; import AsyncStorage from '@react-native-async-storage/async-storage'; import axios from 'axios'; import {SiteUrl} from '../config/Setting'; function parseError(messages) { // error // console.log('message',messages) if (messages) { if (messages instanceof Array) { return Promise.reject({messages: messages}); } else { return Promise.reject({messages: [messages]}); } } else { return Promise.reject({messages: ['エラーが発生しました']}); } } /** * parse response */ function parseBody(response) { // if (response.status === 200 && response.data.status.code === 200) { // - if use custom status code // if (response.status === 200) { return response; // return response.data.result // } else { // console.log('message',response) // return this.parseError(response.data) // } } /** * axios instance */ let instance = axios.create({ baseURL: 'http://14.98.110.243:3000/api/v1/user-service/users/', paramsSerializer: function (params) { return qs.stringify(params, {indices: false}); }, }); // request header instance.interceptors.request.use( async config => { console.log('config is = ', config); // Do something before request is sent let apiToken = ''; apiToken = await AsyncStorage.getItem('apiToken'); console.log('apiToken', apiToken); config.headers = { Authorization: `Bearer ${JSON.parse(apiToken)}`, 'Content-Type': 'multipart/form-data', }; return config; }, error => { return Promise.reject(error); }, ); // response parse instance.interceptors.response.use( response => { return parseBody(response); }, error => { // console.warn('Error status', error.response.status) // return Promise.reject(error) if (error.response) { return parseError(error.response.data); } else { return Promise.reject(error); } }, ); export default instance;

 const [images, setImages] = useState([]);

1 个答案:

答案 0 :(得分:0)

不是专家,但是你在哪里调用上传图片的方法。我使用 Fetch 遇到了这些“网络错误”问题,并使用 Form Data 对象解决了它。这是我的代码:

ImagePicker.openPicker({
    multiple: true,
    forceJpg: true,
    maxFiles: 5,
    compressImageQuality: 0.5,
    mediaType: 'photo'
})
.then(images =>{
    //map of around the pictures and return a form data that will be passed to whole.js
    images.map((item, index) => {
        this.setState({numberImages: this.state.numberImages + 1})
        this.state.formData.append("photo", {
            uri: item.path,
            type: "image/jpeg",
            name: `pickedImage-${index}.jpg`
        })
        
      });
});