2017-09-26 50 views
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 
    } 
} 

回答

2

而不是 '(' 嘗試 '{' 在你mapStateToProps

function mapStateToProps({contacts}, ownProps) { 
    return {contact: contacts[ownProps.match.params.id]} 
} 
+0

大皮卡!但是現在我得到了'TypeError:無法讀取未定義的屬性'params' –

+1

@ Al-josh這意味着'ownProps.match'不存在。我建議你將一個調試器放到你的'mapStateToProps'中,看看'ownProps'實際上是什麼樣的。 – Andrew