NativeModules.RNCookieManager.getCookie返回null

时间:2018-10-22 07:59:08

标签: react-native cookies react-native-android csrf-token

环境:

  • 操作系统:macOS 10.14
  • 节点:6.14.4
  • 纱线:1.9.4
  • npm:3.10.10
  • 值班人员:4.9.0
  • Xcode:Xcode 9.4.1
  • 内部版本9F2000
  • Android Studio:3.2 AI-181.5540.7.32.5014246

软件包:(需要=>已安装)

  • 反应:16.3.1 => 16.3.1
  • 本机:0.55.4 => 0.55.4

    在我的应用中,我使用django-rest-framework作为后端,我需要csrftoken将数据发布到后端。为此,我使用了react-native-cookie。问题是该库在我第一次使用它时就起作用了。但是后来突然没用,我调试了这个库,想知道NativeModules.RNCookieManager.getCookie(url)也没用。

  • 我的Splashscreen.js

componentDidMount = async () => {
        const { csrftoken } = await 
        Cookie.get('${service_url}/api/login');
        console.log('csrftoken __SS__ -> ', csrftoken);
        if (csrftoken)
            this.props.dispatch(set_csrf(csrftoken));
        async_db.getTheItem('user_token', async token => {
            if (token) {
                const user = await checkUserToken({
                    usertoken: token,
                    csrftoken
                });
                if (user) {
                    console.log('user => ', user);
                    this.props.dispatch(init_user(user));
                    this.props.navigation.navigate('Main');
                } else {
                    this.props.navigation.navigate('Login');
                }
            } else {
                this.props.navigation.navigate('Login');
            }
         );
    };

get(url: String, name: String): Promise < Object | String > {
  return NativeModules.RNCookieManager.getCookie(url).then(
    (value: String): Object => {
      if (name && value) { // value = null
        return cookie.parse(value)[name] || null;
      } else {
        return value ? cookie.parse(value) : null;
      }
    }
  );
}

最后,在浏览器cookie中必须存在

enter image description here

我为图书馆写了issue,但没有用   现在我的问题是为什么RNCookieManager.getCookie(url)解析为null   由于以前的代码和库都在工作,因此问题应该出在其他方面。 我很欣赏任何想法。 谢谢。

0 个答案:

没有答案