无法从快递应用程序中获取特定用户数据

问题描述 投票:0回答:1

我正在尝试检索属于特定用户ID的对象(当前已登录。我抓住所有对象(保险单)并显示它们但我无法尝试返回属于特定用户的对象用户。用户ID存储在localStorage中,是5c5b1452fbabcd494ce889e4

这是我的组成部分; `

    class PolicyResultContainer extends Component {

      componentDidMount() {
        this.props.getPolicies();
      }

      render(){
        const { items } = this.props.policy;
        return(
          <div className="policyresults-container">
            { items.map(({ _id, company, typeofins, policynum, dollarvalue, contactnum }) => (
              <div className="policy" key={_id}>
                  <div className="policy-title-row">
                      <div className="record-title">{company}</div>
                      <input type="button"
                        value="DELETE"
                        onClick={this.onDeleteClickPolicy.bind(this,_id)}
                        className="editbutton"/>
                    </div>
                  <div className="record">Type: {typeofins}</div>
                  <div className="record">Policy #: {policynum}</div>
                  <div className="record">Value: {dollarvalue}</div>
                  <div className="record">Contact: {contactnum}</div>
              </div>
            ))}
          </div>
        )
      }
    }

对于我在操作中的getPolicies,我有以下内容(如果我从.get行删除$ {userid}它可以工作,但我需要它是特定于用户的)

    const userid = localStorage.getItem('id')

    export const getPolicies = () => dispatch => {
      dispatch(setItemsLoading);
      axios
        .get(`${API_BASE_URL}/api/policies/${userid}`)
        .then(res =>
              dispatch({
            type: GET_POLICIES,
            payload: res.data
          }
        )
      )
    };

我的MongoDB中的对象如下:

    {
        "_id": {
            "$oid": "5c5b215055082a09440b8620"
        },
        "company": "comany name",
        "typeofins": "type of ins",
        "policynum": "pol num",
        "contactnum": "cont num",
        "dollarvalue": "500",
        "userID": "5c5b1452fbabcd494ce889e4",
        "date": {
            "$date": "2019-02-06T18:02:56.417Z"
        },
        "__v": 0
    }

在我的减速机里我有

    export default function (state = initialState, action) {
      switch (action.type) {
        case GET_POLICIES:
          return {
            ...state,
            items: action.payload,
            loading: false
          }

`

node.js reactjs express react-router
1个回答
0
投票

我想知道导出的方法getPolicies是否正在丢失未导出的const userid的上下文。

尝试导出getPolicies并在userid期间传递componentDidMount作为参数

export const getPolicies = (userid) => dispatch => {
  dispatch(setItemsLoading);
  axios
    .get(`${API_BASE_URL}/api/policies/${userid}`)
    .then(res =>
          dispatch({
        type: GET_POLICIES,
        payload: res.data
      }
    )
  )
};

class PolicyResultContainer extends Component {
  constructor(props) {
    super(props)
    this.state = {
      userid: localStorage.getItem('id')
    }
  }

  componentDidMount() {
    this.props.getPolicies(userid);
  }
  ...
© www.soinside.com 2019 - 2024. All rights reserved.