It seems that when child component has its own state which is created by passing from the parent component’s state, if the parent component changes the state and try to re-create the child component with this new state passing in as a parameter for the constructor, the child somehow still uses its old state.
Maybe the rule of thumb is, state should only be changed by the direct owner of the state, not the containers?
Anyway I solved this issue by converting the child component into a StatelessWidget in Flutter, still trying to get my head around this Unidirection data flow pattern created by React.