Извлечение данных из функции в <View>компонент внутри метода рендеринга - PullRequest
0 голосов
/ 26 мая 2019

Я пытался извлечь данные из функции внутри рендера, когда я использую alert (), он работает, но когда я пытаюсь вернуть реальный текст, он ничего не показывает

код, с которым я работаю:

export default class App extends Component {
    renderResualts(){
        db.find({}, function (err, docs) {
           return docs.map(function(d){
              return(
                <Text>{d.name}</Text>
              )
           })
        })
    }
  render() {
    return (
      <View style={styles.container}>
          { this.renderResualts() }
      </View>
    );
  }
}

- ОБНОВЛЕННЫЙ КОД:



export default class App extends Component {

    constructor(props){
        super(props)
        this.state = {graves:[]}
    }
    componentDidMount(){
        db.find({}, function (err, docs) {
            this.setState({graves:docs})
        })       
    }

    renderResults(){
        return this.state.graves.map(grave =>
            <Text>{grave.name}</Text>    
        )
    }
  render() {
    return (
      <View style={styles.container}>
          { this.renderResults() }
      </View>
    );
  }
}

Должны быть показаны эти данные:

{ _id: 1, имя: «Родившийся», год: 2017 }, { _id: 2, название: 'Dapibus', год: 2017 }

внутри текста примерно так: ParturientDapibus

Ответы [ 2 ]

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

Передавая данные в State следующим образом:


export default class App extends Component {

    constructor(props){
        super(props)
        this.state = {graves:[]}
    }
    componentDidMount(){
        db.find({}, (err, docs)=> {
            this.setState({graves:docs})
        })       
    }

    renderResults(){
        return this.state.graves.map(grave =>
            <Text key={grave._id}>{grave.name}</Text>    
        )
    }
  render() {
    return (
      <View style={styles.container}>
          { this.renderResults() }
      </View>
    );
  }
}

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

попробуйте

renderResults(){
    return (
       <View>
           this.state.graves.map(grave =>
                <Text>{grave.name}</Text>    
           )
      </View>
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...