RNCookieManagerAndroid.get有4个参数,预计3 -react native

时间:2017-08-25 19:49:48

标签: react-native react-native-android

这是代码:

componentDidMount () {
    // Get cookies as a request header string
    CookieManager.get("http://10.42.0.1:8000/login", (err, res) => {

      // Outputs 'user_session=abcdefg; path=/;'
      fetch("http://10.42.0.1:8000/login", {
        method: "POST",
        headers: {
          'Accept': 'application/json',
          'Content-Type': 'application/json',
          'X-CSRFToken': res.csrftoken,
        },
        body: JSON.stringify({
          username: 'user',
          password: 'securepassword',
        })
      })
      .then((response) => response.json())
      .then((responseJson) => {
        console.log(responseJson);
      })
    });
  }

上面的代码在模拟器上显示错误!!!

Android Emulator的屏幕截图---

enter image description here

这里安装了

yarn add react-native-cookies

以及其他给定的说明。 也在app.js文件中导入

import CookieManager from 'react-native-cookies';

一切似乎都是正确的仍然显示此错误.. 欢迎任何建议.. 谢谢!!!

1 个答案:

答案 0 :(得分:1)

模块react-native-cookies在其中实现 Promises ,它将响应作为Promise对象提供,因此您唯一错误的就是处理 Cookiemanager.get 致电。 如下更改您的代码然后您就可以了:)

componentDidMount () {
// Get cookies as a request header string
CookieManager.get("http://10.42.0.1:8000/login")
  .then((res) => {

  // Outputs 'user_session=abcdefg; path=/;'
  fetch("http://10.42.0.1:8000/login", {
    method: "POST",
    headers: {
      'Accept': 'application/json',
      'Content-Type': 'application/json',
      'X-CSRFToken': res.csrftoken,
    },
    body: JSON.stringify({
      username: 'user',
      password: 'securepassword',
    })
  })
  .then((response) => response.json())
  .then((responseJson) => {
    console.log(responseJson);
  })

  }).catch((err) => {
      //handle your error here 
  })
}

这就是你做错了。如果您还有其他需要,请告诉我。