Fix: Progress text sometimes does not update #157
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I found a small bug in
Circle.js; when I update the progress from0to0.05the progress bar grows to 5% but the text continues to display "0%". Further updates of the component do not show the problem.Repro
Initialise the component with:
Then update it:
Proposed fix
It looks like the listener that is registered in
componentWillMount()setsthis.progressValuetoo late, after the component has updated. A simple solution is to stop usingthis.progressValueand instead read the internal value insidethis.props.progress(an instance ofAnimated.Value). The race condition is therefore avoided.Further improvements
I'm not sure if the
componentDidMount()listener is still useful. It looks like it was there to work around this particular bug. I left it because it may be needed in some other case I'm not aware of.Feel free to amend the merge request.