Fixes #64: Only re-render when inputs have changed