0
我下面的教程,現在我試圖讓自己的博客,但它給了我下面的錯誤:如何顯示單後在陣營
Syntax error: Unexpected token, expected ] (28:28)
26 |
27 | function mapStateToProps({contacts}, ownProps) {
> 28 | return (contact: contacts[ownProps.match.params.id])
| ^
29 | }
我有一個網頁中的所有聯繫人當我點擊聯繫人名稱時,我想顯示一個包含完整詳細信息的頁面。後端應該工作,因爲它回饋了正確的用戶(我用郵差測試了它)。
這裏是我的ContactShow.js
import React, { Component } from 'react';
import { connect } from 'react-redux';
import { Link } from 'react-router';
import { fetchContact } from '../../actions';
class ContactShow extends Component {
componentDidMount() {
const { id } = this.props.match.params;
this.props.fetchContact(id);
}
render() {
const { contact } = this.props;
if (!contact) {
return <div>Loading...</div>;
}
return (
<div>
{contact.contactTitle} {contact.contactName}
<br />
{contact.contactAddress}
</div>
);
}
}
function mapStateToProps({contacts}, ownProps) {
return (contact: contacts[ownProps.match.params.id])
}
export default connect(mapStateToProps, {fetchContact})(ContactShow)
這裏是actions/index.js
:關於獲取聯繫人
export const fetchContact = (id) => async dispatch => {
const res = await axios.get(`/api/contacts/${id}`)
dispatch({type: FETCH_CONTACT, payload: res.data.contact})
}
和減速器部分:
case FETCH_CONTACT:
return {...state, [action.payload.data.id]: action.payload.data};
只是爲了確認,當我寫在郵差GET localhost:5000/api/contacts/59c7b975d9d7eed098507a64
我得到以下json :
{
"contact": {
"_id": "59c7b975d9d7eed098507a64",
"contactTitle": "Mrs",
"contactName": "Lisa",
"contactEmail": "[email protected]",
"contactTelephone": "12345678",
"contactAddress": "Example Road, 12",
"__v": 0
}
}
大皮卡!但是現在我得到了'TypeError:無法讀取未定義的屬性'params' –
@ Al-josh這意味着'ownProps.match'不存在。我建議你將一個調試器放到你的'mapStateToProps'中,看看'ownProps'實際上是什麼樣的。 – Andrew