Skip to content

[2.4.1] Code in CodeEditor isn't updated #369

Closed as not planned
Closed as not planned
@thomasdax98

Description

@thomasdax98

Issue

If the code passed to <LiveProvider> changes, the <CodeEditor> isn't updated. This occurs in v2.4.1 of react-live.

Demo

CodeSandbox: https://codesandbox.io/s/react-live-code-update-issue-w2lxsg?file=/src/App.js

After two seconds the code passed to the <LiveProvider> changes from abc to def. This change is reflected in the <LivePreview> but not in the <CodeEditor>.

Reason

The reason is the following code:

https://github.com/FormidableLabs/react-live/blob/v2.4.1/src/components/Editor/index.js#L13-L15

if (state.prevCodeProp && props.code !== state.prevCodeProp) {
  setState({ code: props.code, prevCodeProp: props.code });
}

In the if(), you check if state.prevCodeProp is defined. However, this can never be true because it's never initialized. The bug was introduced in v2.3.0. Previously, the code read:

https://github.com/FormidableLabs/react-live/blob/v2.2.3/src/components/Editor/index.js#L18-L20

if (props.code !== state.prevCodeProp) {
  return { code: props.code, prevCodeProp: props.code };
}

That worked as expected.

Fix

I already pushed a fix to my fork of your repo: thomasdax98@d977799

However, I don't know how I can merge it to your repo since there is no v2 branch. Could you help me with that?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions