Реагировать на получение неопределенного от объекта, даже если он существует - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь получить доступ к данным из моего объекта через .filter, и я получаю объект.Я посмотрел вокруг переполнения стека, но все, о чем он говорил, - это использование JSON.stringify, который превращает мои данные в строку, но я все еще не могу получить доступ к нужным функциям (имя, возраст и адрес электронной почты).Я попытался использовать

friend[0], что еще больше упростило его, но когда я делаю friend[0].name, он возвращает имя undefined.

Code Image

enter image description here

Вот код EditForm, я в конечном итоге собираюсь использовать данныедля изменения ввода, но я хочу иметь возможность сначала получить доступ к данным, поскольку хочу использовать их в качестве заполнителей:

import React from 'react';

class EditForm extends React.Component{
  constructor(props){
    super(props)
    this.state = {
      friend: {
        name: '',
        email: '',
        age: ''
      }
    }
  }


  render(){
    const id = this.props.match.params.id;
    const friend = this.props.friends.find(friend => {return `${friend.id}` === id})
    console.log(friend)
    return(
      <div>
        <h1> Edit Friend</h1>

      </div>

    )
  }
}

export default EditForm;

Ответы [ 2 ]

0 голосов
/ 25 января 2019

const friends = [{
  id: 1,
  name: 'Ben',
  age: 30,
  email: 'sampleemail@email.com',
}, {
  id: 2,
  name: 'Austen',
  age: 29,
  email: 'newemail@emails.com'
}]

const id = 1;

let friend = friends.filter(friend => friend.id === id);

console.log(friend[0]);
console.log(friend[0].name);
0 голосов
/ 25 января 2019

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

const friends = [{
  id: 1,
  name: 'Ben',
  age: 30,
  email: 'sampleemail@email.com',
}, {
  id: 2,
  name: 'Austen',
  age: 29,
  email: 'newemail@emails.com'
}]

const id = 2;

const friend = friends.find(friend => friend.id === id);

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