2014-11-13 1 views
7

Я очень новичок, чтобы отреагировать (или сказать веб-технологии). Я начал создавать приложение, которое использует разные компоненты. Когда я просмотрел документацию, я подумал, что положить isRequired в propTypes, ограничивает пользователя предоставлением всех атрибутов isRequired при использовании компонента.propTypes isRequired constraint mis-leading поведение в реакции

Но в этом примере, даже если я не передаю isRequired атрибуты, я могу загрузить компонент.

var PanelPreview = React.createClass({ 
    getInitialState: function(){ 
     return { captionIndex: 0 }; 
    }, 
    propTypes: { 
     beforeSrc: React.PropTypes.string.isRequired, 
     afterSrc: React.PropTypes.string.isRequired, 
     captionTable: React.PropTypes.array 
    }, 
}); 
module.exports = PanelPreview; 

приложение использует этот компонент:

React.render(
     < PanelPreview />, 
     document.getElementById('main') 
    ); 

Я хочу, чтобы ограничить пользователя компонента, чтобы обеспечить эти два значения либо еще бросить какую-то ошибку.

ответ

7

Проверка отказов в сборе в настоящее время не считается критической ошибкой. Однако будет Warnning входа в консоли:

Warning: Required prop `beforeSrc` was not specified in `PanelPreview`. 

Это происходит только в непроизводственной сборке реагировать. В производстве ничего не регистрируется. См. Эту скрипку для примера.

Обсуждалось то, что React не смог быстро пропустить ошибки проверки профайла (см. Вопросы ниже), похоже, что это произойдет в конечном итоге, но я не думаю, что это на любой дорожной карте все же.

+0

Благодаря Wicky, спасибо за разъяснение его. – mAc

+1

@mAc, чтобы добавить к этому, недавно выпущенный FB Flow для проверки типов JS, http://flowtype.org. Он обрабатывает типы prop, как вы ожидали (но, к сожалению, это не похоже, что это простое дополнение к любой настройке) – WickyNilliams