Подтвердить что ты не робот

This.key в React.js 0.12

С выпуском версии 0.12 this.props.key больше не доступно внутри компонента, однако похоже, что вы можете просто заменить его на this.key, и все должно работать должным образом.

Из React v0.12 docs:

Это означает, что вам нужно переименовать: someElement.props.key → someElement.key

Однако, когда я пытаюсь получить доступ к this.key в функции render() моего компонента, я получаю undefined.

Посмотрите мое перо, чтобы проиллюстрировать проблему: http://codepen.io/anon/pen/jaczr?editors=100

также:

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

Как мне получить доступ к ключу компонента?

ОБНОВЛЕНИЕ

Существует эта проблема в GitHub, которая многое разъясняет. Спасибо HEAP за упоминание об этом.

4b9b3361

Ответ 1

То, что действительно рекомендуют документы (хотя это плохо сформулировано), заключается в том, что вы должны относиться к key и ref как к внутреннему к Реагированию и не доступны внутри компонента. Если вам нужно знать ключ, просто передайте его как другое свойство с другим именем, а затем получите его на this.props как обычно.

http://facebook.github.io/react/blog/2014/10/16/react-v0.12-rc1.html#breaking-change-key-and-ref-removed-from-this.props

Цитата:

Вы больше не можете обращаться к this.props.ref и this.props.key из самого экземпляра Component. Поэтому вам нужно использовать другое имя для этих реквизитов.

Пример:

<MyComponent key={foo} reactKey={foo} />

Затем доступ внутрь внутри this.props.reactKey.