Я использую приведенный ниже код, чтобы установить свойства по умолчанию для компонента React, но он не работает. В этом render()
методе я вижу, что вывод «undefined props» был напечатан на консоли браузера. Как я могу определить значение по умолчанию для свойств компонента?
export default class AddAddressComponent extends Component {
render() {
let {provinceList,cityList} = this.props
if(cityList === undefined || provinceList === undefined){
console.log('undefined props')
}
...
}
AddAddressComponent.contextTypes = {
router: React.PropTypes.object.isRequired
}
AddAddressComponent.defaultProps = {
cityList: [],
provinceList: [],
}
AddAddressComponent.propTypes = {
userInfo: React.PropTypes.object,
cityList: PropTypes.array.isRequired,
provinceList: PropTypes.array.isRequired,
}
reactjs
ecmascript-6
Джои Йи Чжао
источник
источник
react
/native
doc и не смог их найти, где для этого документ?static
переменные класса, это имеет смысл, поэтому я предлагаю прочитать о них в MDN . По сути, синтаксис в документации эквивалентен этому, потому что оба добавляют информацию о реквизитах к самому классу, а не к отдельным экземплярам.Сначала вам нужно отделить свой класс от дополнительных расширений, которые вы не можете расширять
AddAddressComponent.defaultProps
внутри,class
вместо этого переместите его наружу.Я также порекомендую вам прочитать о жизненном цикле конструктора и React: см. Спецификации компонентов и жизненный цикл.
Вот что вам нужно:
источник
constructor
иcomponentWillReceiveProps
? Мне кажется, OP просто забыл закрывающую скобку для объявления своего класса.Вы также можете использовать назначение «Разрушение».
Мне нравится этот подход, так как вам не нужно писать много кода.
источник
используйте статические свойства defaultProps, например:
Взято с: https://github.com/facebook/react-native/issues/1772
Если вы хотите проверить типы, посмотрите, как использовать PropTypes в ответах трейхакансона или Илана Гасанова, или просмотрите множество ответов в приведенной выше ссылке.
источник
Вы можете установить свойства по умолчанию, используя имя класса, как показано ниже.
Вы можете использовать рекомендуемый способ React по этой ссылке для получения дополнительной информации
источник
Для свойства типа функции вы можете использовать следующий код:
источник
Если вы используете функциональный компонент, вы можете определить значения по умолчанию в назначении деструктуризации, например:
источник
источник