Не удается получить определенные пользовательские данные в приложении реакции из экспресс-приложения - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь получить обратно объекты, которые принадлежат определенному идентификатору пользователя (в настоящее время вошли в систему. Я захватывал все объекты (страховые полисы) и отображал их, но у меня возникают проблемы при попытке просто вернуть те, которые принадлежатдля конкретного пользователя. Идентификатор пользователя хранится в 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 в действиях, у меня есть следующее (если я удаляю$ {userid} из строки .get работает, но мне нужно, чтобы он был специфичным для пользователя)

    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
          }

`

1 Ответ

0 голосов
/ 07 февраля 2019

Мне интересно, теряет ли экспортированный метод 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);
  }
  ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...