доступ к реквизиту с помощью реф обратного вызова - PullRequest
0 голосов
/ 10 мая 2019

Я сильно чешу голову;пытаясь выяснить, что не так в приведенном ниже фрагменте.

import React from 'react';
import { Text, TouchableOpacity, View } from 'react-native';

class MyButton extends React.Component {

  setNativeProps = (nativeProps) => {
    alert(JSON.stringify(this._root.props)) //able to get this.v here
  }

  render() {
    return (
      <View ref={cc => {this._root = cc; this.v = 100 }} me="tom">
        <Text ref={component => { this._root1 = component;}} style={{margin:55}} onPress={()=>this.setNativeProps({text:'fgfg'})}>{this.props.label} </Text>
      </View>
    )
  }
}

export default class App extends React.Component {
  render() {
    return (
      <TouchableOpacity >
        <MyButton label="Press me!" />
      </TouchableOpacity>
    )
  }
}

в основном пытается получить реквизит из элемента <View>, т.е. this._root.props, используя ref callback

this._root1.props работает отлично все время.Может ли кто-нибудь помочь мне выяснить, в чем проблема?

РЕДАКТИРОВАТЬ: Я даже могу видеть this._root, но даже не это._root.props.me.

1 Ответ

0 голосов
/ 22 мая 2019

Не могли бы вы попробовать не делать

Уведомление (JSON.stringify (this._root.props))

вместо этого просто сделайте

Уведомление (this._root.props)

т.е. удалить JSON.stringify

Причина, по которой он не работает, заключается в том, что View имеет дочерний элемент с самим собой, а при использовании Text в нем нет дочернего элемента.

...