をoneOfの配列やデフォルトを支える:私は配列に小道具を持つコンポーネントを作成するか、デフォルト値を使用したいReact.js
<Component lang="en"/> // this.props.lang == en
<Component lang="fr"/> // this.props.lang == fr
私のコンポーネントは、まだイタリアそう<Component lang="it"/>
表示素敵な警告メッセージに翻訳されていません:私のコンポーネントの
Warning: Failed prop type: Invalid prop `lang` of value `it` supplied to `Component`, expected one of ["en","fr"].
言語はit
に等しく、私はen
に等しくなるようにしたいです。 ここで
import React from 'react';
const Component = React.createClass({
propTypes: {
lang: React.PropTypes.oneOf(['en', 'fr'])
},
getDefaultProps() {
return {
lang: 'en'
};
},
render(){
return (
<h1>
lang: {this.props.lang}
</h1>
);
}
});
export default Component;
私のテスト:
import assert from 'assert';
import React from 'react';
import {mount} from 'enzyme';
import Component from './Component';
describe('<Component />',() => {
it('get default prop',() => {
const wrapper = mount(<Component />);
assert.equal(wrapper.prop('lang'), 'en') // pass
});
it('get valid prop',() => {
const wrapper = mount(<Component lang="fr"/>);
assert.equal(wrapper.prop('lang'), 'fr') // pass
});
it('get invalid prop',() => {
const wrapper = mount(<Component lang="it"/>);
assert.equal(wrapper.prop('lang'), 'en') // fail
});
});
はい 'validation'を支えるには、私のブラウザコンソールに警告を表示することが素晴らしいです。あなたの提案に感謝します。私はAPIが 'React.PropTypes.oneOf(VALID_LANGS、DEFAULT_LANG)'と同じくらいフレンドリーであることを望みました。 –