techboy
techboy

Reputation: 157

How to change value of a stateful widget in flutter?

class SecondScreen extends StatefulWidget { int myIndexValue;

SecondScreen(this.myIndexValue);

@override

  _SecondScreenState createState() => _SecondScreenState();
}

class _MusicPlayingState extends State<MusicPlaying> {
  @override
  void initState() {
    super.initState();
    setState({
      widget.myIndexValue = widget.myIndexValue + 1;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Text(widget.myIndexValue.toString());
  }

}

Edit: I FOUND THE ANSWER. After putting print statements everywhere. i found out the build function of a state widget is called frequently. So i put a setstate in a function and put it under the build method.

Upvotes: 0

Views: 2192

Answers (1)

iDecode
iDecode

Reputation: 28906

class SecondScreen extends StatefulWidget {
  final int myIndexValue;

  SecondScreen(this.myIndexValue);

  @override
  _SecondScreenState createState() => _SecondScreenState();
}

class _SecondScreenState extends State<SecondScreen> {
  int _myIndexValue;

  @override
  void initState() {
    super.initState();
    _myIndexValue = widget.myIndexValue;
    _update();
  }

  void _update() {
    setState(() {
      _myIndexValue = _myIndexValue + 1;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Text(_myIndexValue.toString());
  }
}

Upvotes: 0

Related Questions