From 08ed3a02a2291ad1e18389674d8ac20678064723 Mon Sep 17 00:00:00 2001 From: Andre Wiggins Date: Fri, 28 Apr 2023 14:03:42 -0700 Subject: [PATCH] Add note about tradeoffs in current React integration --- .changeset/flat-oranges-promise.md | 5 +++++ packages/react/README.md | 16 ++++++++-------- 2 files changed, 13 insertions(+), 8 deletions(-) create mode 100644 .changeset/flat-oranges-promise.md diff --git a/.changeset/flat-oranges-promise.md b/.changeset/flat-oranges-promise.md new file mode 100644 index 000000000..adf88c08d --- /dev/null +++ b/.changeset/flat-oranges-promise.md @@ -0,0 +1,5 @@ +--- +"@preact/signals-react": patch +--- + +Add note to Readme about tradeoffs in current React integration diff --git a/packages/react/README.md b/packages/react/README.md index db0131f8d..7869cb4dd 100644 --- a/packages/react/README.md +++ b/packages/react/README.md @@ -1,4 +1,3 @@ - # Signals Signals is a performant state management library with two primary goals: @@ -15,17 +14,19 @@ npm install @preact/signals-react ``` - [Guide / API](../../README.md#guide--api) - - [`signal(initialValue)`](../../README.md#signalinitialvalue) - - [`signal.peek()`](../../README.md#signalpeek) - - [`computed(fn)`](../../README.md#computedfn) - - [`effect(fn)`](../../README.md#effectfn) - - [`batch(fn)`](../../README.md#batchfn) + - [`signal(initialValue)`](../../README.md#signalinitialvalue) + - [`signal.peek()`](../../README.md#signalpeek) + - [`computed(fn)`](../../README.md#computedfn) + - [`effect(fn)`](../../README.md#effectfn) + - [`batch(fn)`](../../README.md#batchfn) - [React Integration](#react-integration) - - [Hooks](#hooks) + - [Hooks](#hooks) - [License](#license) ## React Integration +> Note: The React integration plugs into some React internals and may break unexpectedly in future versions of React. If you are using Signals with React and encounter errors such as "Rendered more hooks than during previous render", "Should have a queue. This is likely a bug in React." or "Cannot redefine property: createElement" please open an issue here. + The React integration can be installed via: ```sh @@ -68,4 +69,3 @@ function Counter() { ## License `MIT`, see the [LICENSE](../../LICENSE) file. -