Ошибка типа: невозможно прочитать свойство «данные» из неопределенного - PullRequest
0 голосов
/ 21 октября 2018

Между двумя записями, а именно странами и клиентами, существует много-много взаимосвязей.Когда я получаю некоторые записи от клиентов (массив клиентов) и пытаюсь проблемно назначить их стране (записи), например, record[clientsRelationName] = clients, я получаю следующую ошибку базара, TypeError: Cannot read property "data" from undefined. Я точно знаю, что переменная clientsRelationName на самом деле является строкой, которая соответствует имени отношения, которое просто называется клиентами.И это не имеет ничего общего с переменной с именем data.На самом деле данных не существует.И я точно знаю, что record является определенной переменной.

Есть идеи, почему это происходит?Это ошибка?

Ответы [ 3 ]

0 голосов
/ 22 октября 2018

Как вы указали в своем вопросе, clientsRelationName - это строка, соответствующая имени отношения.Ваше реальное отношение просто Клиенты , поэтому должно работать любое из следующих:

record[Clients] = clients;

или

record.Clients = clients;

Я бы фактически предложил использовать запись .YourRelation , поскольку при использовании точки после записи intellisense автоматически отображает все параметры имен полей или конечных имен отношений, которые доступны в этой записи.

0 голосов
/ 31 октября 2018

После долгих ошибок и ошибок я наконец нашел способ заставить его работать, используя довольно простое решение и единственный способ заставить его работать.В основном, чтобы получить эту странную ошибку, когда при изменении ассоциации для записи TypeError: Cannot read property "data" from undefined я сделал следующее:

Перебрал отношение записи (массив) и выскочил каждую запись в стороне от нее.Затем переберите другие записи, которым вы хотите назначить отношение записи (изменить ассоциацию), передав каждый элемент в отношение записи.

var length = record[relationNameAsVariable].length;
for(var i=0; i<length; i++){
  record[relationNameAsVariable].pop();
}

сейчас record[relationNameAsVariable] пусто, поэтому сделайте следующее:

for(var i=0; i < clientsArray.length; i++ ){
  record[relationNameAsVariable].push(clientsArray[i]);
}

Это может быть ошибка или что-то еще, что я делаю неправильно, когда пытаюсь заменить всю ассоциацию,Я не уверен.Но это работает как чемпион.

0 голосов
/ 22 октября 2018

Я видел эту проблему, когда использование Object.keys() в записи на стороне сервера дает [key, data, state] вместо ожидаемых полей для этой записи.Поэтому, если ваше программное задание включает в себя итерацию свойств этого объекта записи, вы можете использовать это свойство data.

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

...