Ошибка TS2345: аргумент типа «StudentInfo» нельзя назначить параметру типа «строка».Android

Фору для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Ошибка TS2345: аргумент типа «StudentInfo» нельзя назначить параметру типа «строка».

Сообщение Гость »


Я получаю строковый тип при переборе объекта с помощью карты. Поэтому я вынужден использовать JSON.parse, а затем использовать поля объекта.

Вот мой компонент в TS, вызывающий проблемы:

StudentsScreen.tsx:

экспортировать функцию по умолчанию StudentScreen(props: StudentInfoProps) { const {studentList} = реквизит; console.log(typeof StudentList);//объект console.log(JSON.stringify(studentList)); //["{\"имя\":\"Джон Доу\",\"курс\":\"Javascript\"}","{\"имя\":\"Джейн Доу\",\"курс \":\"Машинопись\"}","{\"имя\":\"Грег Доу\",\"курс\":\"ReactNative\"}"] вернуть { StudentList?.map(студент => { console.log(тип студента);//строка const {имя, курс} = JSON.parse(студент); //Мне не нужно этого делать //const {имя, курс} = студент; //Этого должно быть достаточно. Однако это приведет к тому, что имя и курс станут неопределенными. возвращаться ( ); })} ; } Ошибка:

Screens/Students.tsx:11:53 — ошибка TS2345: аргумент типа «StudentInfo» невозможно назначить параметру типа «строка». 11 const {имя, курс} = JSON.parse(студент); StudentInfo.tsx:

тип экспорта StudentInfo = { имя: строка; курс: строка; }; тип экспорта StudentInfoProps = { список студентов: StudentInfo[]; }; тип экспорта RootStackParamList = { ReactNative: {studentList: StudentInfoProps}; }; Знаете ли вы, что может привести к получению строки при обходе объекта?

Этот объект взят из Android Native:

MyReactActivity.java:

публичный класс MyReactActivity расширяет ReactActivity реализует DefaultHardwareBackBtnHandler { частный ReactInstanceManager mReactInstanceManager; частный ReactRootView mReactRootView; protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); mReactRootView = новый ReactRootView (это); Gson gson = новый Gson(); Начальные свойства пакета = новый пакет (); Студент stud1 = новый Студент("Джон Доу", "Javascript"); Студент stud2 = новый Студент("Джейн Доу", "Машинопись" ); Student stud3 = new Student("Грег Доу", "React Native"); ArrayList StudentList = новый ArrayList(); StudentList.add(gson.toJson(stud1)); StudentList.add(gson.toJson(stud2)); StudentList.add(gson.toJson(stud3)); InitialProperties.putStringArrayList("studentList", StudentList); mReactRootView.startReactApplication(mReactInstanceManager, «RNProject», InitialProperties); setContentView (mReactRootView); } } Здесь я определил объект Student в Java, который затем передается в React Native:

Студент, Java:

пакет com.rnproject.screens.reactnative.helpers; импортировать java.io.Serializable; публичный класс Student реализует Serializable { частное имя строки; частный курс игры на струнных инструментах; публичный студент(){} @Override публичная строка toString(){ return "{name="+name+",course="+course+"}"; } public Student (имя строки, курс строки) { это.имя = имя; this.course = курс; } } Заметили ли вы какие-либо проблемы с объектом ученика, которые могут привести к получению строки во время итерации с картой?

Почему мне не разрешено делать что-то подобное?

const Student = [{"name":"Джон Доу", "курс":"Машинопись"}, {"name":"Джейн Доу", "course":"Javascript"}] const tmp = студенты.карта(студент => { const {имя, курс} = студент; console.log(имя); console.log(курс); }) Большое спасибо за помощь!
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ, комментарий, отзыв

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Ошибка типа: невозможно прочитать свойства неопределенного значения (чтение «метаданных»)
    Гость » » в форуме Javascript
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • Специализация метода шаблона C++ по признакам типа
    Гость » » в форуме C++
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • Строка нечеткого совпадения с 1 миллионом строк
    Гость » » в форуме Python
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • Строка, написанная дважды на реальном устройстве iOS, но правильная в симуляторе XCode.
    Гость » » в форуме IOS
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость
  • *1 ошибка подключения() (113: нет маршрута к хосту)
    Гость » » в форуме Php
    0 Ответы
    0 Просмотры
    Последнее сообщение Гость

Вернуться в «Android»