skip to Main Content

I need to add items to a Appointment item.

Appointment is a class as follows:

Appointment Appointment({   
String? startTimeZone,   
String? endTimeZone,   
String? recurrenceRule,   
bool isAllDay = false,   
String? notes,   
String? location,   
List<Object>? resourceIds,   
Object? recurrenceId,   
Object? id,   
required DateTime startTime,   
required DateTime endTime,   
String subject = '',   
Color color = Colors.lightBlue,   
List<DateTime>? recurrenceExceptionDates, })

I am inserting Appointment items as follows:

List<Appointment> appointments = <Appointment>[];
    appointments.add(Appointment(
      startTime: DateTime.now(),
      endTime: DateTime.now().add(const Duration(hours: 1)),
      subject: 'Formación presencial',
      color: Colors.green,
      notes: "Formación presencial",
      location: "Zaragoza",
      resourceIds:  EventObjects(profId: "1",profAvatar: "as",profColor: "dd",profNombre: "ee",eventoColor: "Cc",eventoTipo: "Rr"),

    ),);

But I don´t understand the concept of List of objects, I would like to add as resourcesIds an object from type EventObjects.

class EventObjects{
String? profId;
String? profColor;
String? profNombre;
String? profAvatar;
String? eventoTipo;
String? eventoColor;

// added '?'

  EventObjects({this.profId, this.profColor, this.profAvatar, this.profNombre, this.eventoColor, this.eventoTipo});
// can also add 'required' keyword
}

But I guess this is not the way to do it as the line

resourceIds:  EventObjects(profId: "1",profAvatar: "as",profColor: "dd",profNombre: "ee",eventoColor: "Cc",eventoTipo: "Rr"),

is marked as error

The argument type 'EventObjects' can't be assigned to the parameter type 'List<Object>?'

3

Answers


  1. You are trying to assign here

    resourceIds:  EventObjects(profId: "1",profAvatar: "as",profColor: "dd",profNombre: "ee",eventoColor: "Cc",eventoTipo: "Rr"),
    

    a EventObjects instance to a field List<Object>?

    What you may want to do is to either declare the resourceIds as Object or EventObjects or make a list literal of resourceIds like this

    resourceIds:  [EventObjects(profId: "1",profAvatar: "as",profColor: "dd",profNombre: "ee",eventoColor: "Cc",eventoTipo: "Rr")],
    

    Both will work

    Login or Signup to reply.
  2. Here’s the mistake:

    Appointment Appointment({   
    String? startTimeZone,   
    String? endTimeZone,   
    String? recurrenceRule,   
    bool isAllDay = false,   
    String? notes,   
    String? location,   
    List<Object>? resourceIds,  //here we're assigning as List<Object> which is 
                                 // incorrect 
    Object? recurrenceId,   
    Object? id,   
    required DateTime startTime,   
    required DateTime endTime,   
    String subject = '',   
    Color color = Colors.lightBlue,   
    List<DateTime>? recurrenceExceptionDates, })
    

    You can do it this way:

    Appointment Appointment({   
    String? startTimeZone,   
    String? endTimeZone,   
    String? recurrenceRule,   
    bool isAllDay = false,   
    String? notes,   
    String? location,   
    List<EventObjects>? resourceIds, 
    Object? recurrenceId,   
    Object? id,   
    required DateTime startTime,   
    required DateTime endTime,   
    String subject = '',   
    Color color = Colors.lightBlue,   
    List<DateTime>? recurrenceExceptionDates, })
    

    And you can assign like this:

    resourceIds:[EventObjects(profId: "1",profAvatar: "as",profColor: "dd",profNombre: "ee",eventoColor: "Cc",eventoTipo: "Rr")],
    
    Login or Signup to reply.
  3. Actually, you are inserting a Object not List<Object> and your datatype for resourceIds is of List<Object>?.

    You can try using this:

    List<EventObjects>? eventsObjectList;
    EventObjects eventObject = EventObjects(profId: "1",profAvatar: "as",profColor: "dd",profNombre: "ee",eventoColor: "Cc",eventoTipo: "Rr"); //Instance of EventObjects
    List<Appointment> appointments = <Appointment>[];
    eventsObjectList.add(eventObject);
    appointments.add(Appointment(
      startTime: DateTime.now(),
      endTime: DateTime.now().add(const Duration(hours: 1)),
      subject: 'Formación presencial',
      color: Colors.green,
      notes: "Formación presencial",
      location: "Zaragoza",
      resourceIds: eventsObjectList),);
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search