0

In the below code I am passing value to WeeklyEventContaier before passing value I am checking value of _selectedButtonIndex if it is 2 as i am setting it on pressing elevated button but while receiving in WeeklyEventContaier i am getting as 0 which is the initial value of _selectedButtonIndex below

for (int i = 0; i < _liveEventDataList.length; i++)
    ..._liveEventDataList[i]['children'].map((liveEventData) {

        print(_selectedButtonIndex);
          return WeeklyEventContaier(
            elementData: liveEventData,
            endedEventMemo: endedEventMemo,
            data7pmClass: data7pmClass,
            data4pmClass: data4pmClass,
            selectedButtonIndex: _selectedButtonIndex,
            setEndedEventMemo: setEndedEventMemo,
            setRefetchLiveClassData: setRefetchLiveClassData,
            );
          }),

    import 'package:flutter/material.dart';
    import 'package:flutter_app/utilities/widget_functions.dart';
    import 'package:flutter_app/widgets/live_classes/event_calendar/event_thumbnail.dart';
    
    int ordering = 0;
    
    class WeeklyEventContaier extends StatefulWidget {
      final elementData;
      final endedEventMemo;
      final setEndedEventMemo;
      final setRefetchLiveClassData;
      final data4pmClass;
      final data7pmClass;
      final selectedButtonIndex;
    
      WeeklyEventContaier({
        super.key,
        required this.elementData,
        required this.endedEventMemo,
        this.setEndedEventMemo,
        this.selectedButtonIndex,
        this.setRefetchLiveClassData,
        this.data4pmClass,
        this.data7pmClass,
        
      });
    
      @override
      State<StatefulWidget> createState() {
        return _weeklyEventContainerState(
          elementData,
          endedEventMemo,
          setEndedEventMemo,
          selectedButtonIndex,
          setRefetchLiveClassData,
          data4pmClass,
          data7pmClass
        );
      }
    }
    
    class _weeklyEventContainerState extends State<WeeklyEventContaier> {
      final elementData;
      final endedEventMemo;
      final setEndedEventMemo;
      final selectedButtonIndex;
      final setRefetchLiveClassData;
      final data4pmClass;
      final data7pmClass;
      _weeklyEventContainerState(
        this.elementData,
        this.endedEventMemo,
        this.setEndedEventMemo,
        this.selectedButtonIndex,
        this.setRefetchLiveClassData,
        this.data4pmClass,
        this.data7pmClass,
      );
    
      @override
      Widget build(BuildContext context) {
        print('inWeee');
        print(selectedButtonIndex);
        print('inWeee');
        // print(data7pmClass);
        // print(data4pmClass);
        return Column(
           
        );
      }
    }
Ahmed Sbai
  • 10,695
  • 9
  • 19
  • 38
  • 1
    You shouldn't pass widget constructor values into that widget's state. Instead, in the state, refer to, for example, `widget.endedEventMemo`. Please make those changes and edit the question with updated code. – Richard Heap Mar 06 '23 at 22:18

0 Answers0