App组件刷新时丢失currentUser?

时间:2017-12-08 05:29:03

标签: node.js reactjs axios

我目前正在使用React,Node.js,passport-google-oauth20开发一个简单的网络应用。

由于某种原因,每当应用程序重新安装时,我都会失去当前的用户状态。这就好像req.user只是丢失了。

它的工作方式是我首先在应用程序安装时获取当前用户并将this.state.currentUser设置为结果。问题是页面刷新时。组件重新安装,我失去了用户。我尝试记录用户并收到null。

希望我解释得这么好......这是代码:

应用组件:

import React from 'react';
import List from './List';
import ListForm from './ListForm';
import * as helpers from '../helpers';

class App extends React.Component{
  state = {
    currentUser: '',
  }

  componentDidMount() {
    helpers.fetchUser()
      .then(data => {
        this.setState({
          currentUser: data
        });
      });
  }

  onSubmit = (id, item) => {
    helpers.addItem(id, item);
  }

  render() {
    return (
      <div className="container">
        <List
          currentUser={this.state.currentUser}
          onSubmit={this.onSubmit}
        />
      </div>
    );
  }
};

export default App;

助手:

import axios from 'axios';

export const fetchUser = async () => {
  const resp = await axios.get('/api/current_user');

  return resp.data;
}

export const addItem =  (id, newItem) => {
  axios.post("/api/" + id + "/addItem", newItem);
}

0 个答案:

没有答案