2016-06-17 3 views
4

Мое ощущение, что синтаксис ({курс)) извлекает свойство «курс» из объекта реквизита. Тем самым делается вызов свойств «курса» внутри компонента более кратким. Если я передал реквизит, используя синтаксис (реквизит), вместо ({course)). Например, я должен сказать «props.course.authorId».React, Why {} при передаче реквизитов для функционального компонента без гражданства?

Является ли моя линия мышления правильной? Было бы здорово, если бы вы могли подробно рассказать о том, что здесь происходит, и заполнить любые пробелы.

import React, {PropTypes} from 'react'; 
import {Link} from 'react-router'; 

const CourseListRow = ({course}) => { 
    return (
    <tr> 
     <td><a href={course.watchHref} target="_blank">Watch</a></td> 
     <td><Link to={'/course' + course.id}>{course.title}</Link></td> 
     <td>{course.authorId}</td> 
     <td>{course.category}</td> 
     <td>{course.length}</td> 
    </tr> 
); 
}; 

CourseListRow.propTypes = { 
    course: PropTypes.object.isRequired 
}; 

export default CourseListRow; 

ответ

10

Вы правы. В ES6 синтаксисе функции подписи

const CourseListRow = ({course}) => { ... } 

такой же, как код ES5

var CourseListRow = function(props) { 
    var course = props.course; 
    ... 
} 

Это называется destructuring.

Смежные вопросы