Является ли defaultProps действительным в ReactJs - PullRequest
0 голосов
/ 24 июня 2018

Я следую учебному пособию, и они устанавливают static object с именем defaultprops, и после его установки this.props может использоваться в том же компоненте. Почему это возможно, я имею в виду, какова функция static defaultProps иЭто функция в React.

class TestComponent extends Component {
    static defaultprops = {
        food: ["goatmeat", "yam"]
    }

    render() {
        let categories = this.props.defaultprops.food.map(foods => {
            return <option key={foods}>{foods}</option>
        });

        let {test} = this.props;

        return (
            <p>
                {this.props.test}
            </p>
        );
    };
}

1 Ответ

0 голосов
/ 24 июня 2018

Реквизиты по умолчанию хороши тем, что не нужно указывать все реквизиты при передаче их компоненту.Как следует из названия, оно позволяет вам установить хорошие значения по умолчанию для ваших реквизитов, которые будут использоваться даже в том случае, если переопределяющие значения не передаются. Пожалуйста, имейте в виду, что пропуская опора приведет киспользуется значение по умолчанию, в то время как с передачей значения NULL приведет к использованию значения NULL.

Дополнительная информация может быть найдена здесь .

Редактировать
Чтобы ответить на вопросы, заданные более четко:

Это возможно, потому что так работает React.Это встроенная функциональность для программиста и логическое удобство.

Для TestComponent в вашем примере представьте, что он используется в другом компоненте.Если вы просто используете <TestComponent />, компонент будет иметь значение food ["goatmeat","yam"].Однако вы всегда можете переопределить это по своему усмотрению, передавая другое значение для реквизита при его вызове.Например, вы можете использовать <TestComponent food={["cheese", "eggs", "cabbage"]}/>.Это приведет к тому, что в данном случае компонент, имеющий значение food, равное ["cheese", "eggs", "cabbage"].

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...