React: [Документы] [Вопрос] Ссылки - Обратный вызов против строки

Созданный на 11 мар. 2016  ·  3Комментарии  ·  Источник: facebook/react

Я снова читал документы, мне не ясно, в чем разница между определением ссылки как обратного вызова и строки:

<input ref={input => this._input = input} /> против <input ref="input" />

Может кто-нибудь прояснить мне, пожалуйста?

Самый полезный комментарий

Если вы определите ref как строку, она будет доступна для объекта this.refs , например, this.refs.input .
Если вы определяете ссылку обратного вызова, вы можете делать с ней все, что угодно, включая сохранение ее на this если хотите.

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

В будущем, пожалуйста, подумайте о том, чтобы задавать вопросы о StackOverflow. Мы официально не рассматриваем систему отслеживания проблем как форум поддержки, и, к сожалению, поиск GitHub не работает так же хорошо, как поиск StackOverflow, поэтому, вероятно, кто-то спросит об этом еще раз. Если вы разместите это на StackOverflow, скорее всего, вы получите хороший ответ, ваш вопрос будет проголосован, и больше людей узнают из него и найдут его в будущем.

Все 3 Комментарий

Если вы определите ref как строку, она будет доступна для объекта this.refs , например, this.refs.input .
Если вы определяете ссылку обратного вызова, вы можете делать с ней все, что угодно, включая сохранение ее на this если хотите.

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

В будущем, пожалуйста, подумайте о том, чтобы задавать вопросы о StackOverflow. Мы официально не рассматриваем систему отслеживания проблем как форум поддержки, и, к сожалению, поиск GitHub не работает так же хорошо, как поиск StackOverflow, поэтому, вероятно, кто-то спросит об этом еще раз. Если вы разместите это на StackOverflow, скорее всего, вы получите хороший ответ, ваш вопрос будет проголосован, и больше людей узнают из него и найдут его в будущем.

Еще раз спасибо @gaearon. В следующий раз я воспользуюсь StackOverflow.

Без проблем! Не стесняйтесь отправлять запрос на перенос в документацию, если вы чувствуете, что мы могли бы сделать более очевидным, что мы рекомендуем шаблон обратного вызова в новом коде.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги