diff --git a/android/src/main/java/com/swmansion/reanimated/nodes/Node.java b/android/src/main/java/com/swmansion/reanimated/nodes/Node.java index 9e6e11c2740..f8058786568 100644 --- a/android/src/main/java/com/swmansion/reanimated/nodes/Node.java +++ b/android/src/main/java/com/swmansion/reanimated/nodes/Node.java @@ -32,7 +32,7 @@ public abstract class Node { private @Nullable List mChildren; /* lazy-initialized when a child is added */ public Node(int nodeID, @Nullable ReadableMap config, NodesManager nodesManager) { - mLastLoopID.put("", 1L); + mLastLoopID.put("", -1L); mNodeID = nodeID; mNodesManager = nodesManager; mUpdateContext = nodesManager.updateContext; @@ -75,7 +75,7 @@ public void addChild(Node child) { mChildren = new ArrayList<>(); } mChildren.add(child); - dangerouslyRescheduleEvaluate(); + child.dangerouslyRescheduleEvaluate(); } public void removeChild(Node child) { diff --git a/ios/Nodes/REANode.m b/ios/Nodes/REANode.m index ebdffb7f279..7cb67bf692d 100644 --- a/ios/Nodes/REANode.m +++ b/ios/Nodes/REANode.m @@ -41,7 +41,7 @@ - (instancetype)initWithID:(REANodeID)nodeID config:(NSDictionary _nodeID = nodeID; _lastLoopID = [NSMutableDictionary dictionary]; _memoizedValue = [NSMutableDictionary dictionary]; - _lastLoopID[@""] = @1; + _lastLoopID[@""] = 0; } return self; } @@ -86,7 +86,7 @@ - (void)addChild:(REANode *)child } if (child) { [_childNodes addObject:child]; - [self dangerouslyRescheduleEvaluate]; + [child dangerouslyRescheduleEvaluate]; } } diff --git a/src/core/AnimatedSet.js b/src/core/AnimatedSet.js index ad1a7c78030..c777c2f647f 100644 --- a/src/core/AnimatedSet.js +++ b/src/core/AnimatedSet.js @@ -2,12 +2,15 @@ import AnimatedNode from './AnimatedNode'; import { val } from '../val'; import { adapt } from '../core/AnimatedBlock'; +import invariant from 'fbjs/lib/invariant'; + class AnimatedSet extends AnimatedNode { _what; _value; constructor(what, value) { super({ type: 'set', what: what.__nodeID, value: value.__nodeID }, [value]); + invariant(!what._constant, 'Value to be set cannot be constant'); this._what = what; this._value = value; }