我试图找回属于特定用户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
}
`
答案 0 :(得分: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);
}
...