derive
create a new proxy derived from others
You can subscribe to some proxies using get
to create snapshots used to compute new values.
import { derive } from 'valtio/utils'
// create a base proxy
const state = proxy({
count: 1,
})
// create a derived proxy
const derived = derive({
doubled: (get) => get(state).count * 2,
})
// alternatively, attach derived properties to an existing proxy
derive(
{
tripled: (get) => get(state).count * 3,
},
{
proxy: state,
}
)
underive
stop evaluating
In some cases you may want to unsubscribe after deriving a proxy. To do so, use the underive
util. You may also pass keys to indicate which properties you want to unsubscribe. If you specify delete
option, it will delete the properties
and you can attach new derived properties.
import { derive, underive } from 'valtio/utils'
const state = proxy({
count: 1,
})
const derivedState = derive({
doubled: (get) => get(state).count * 2,
})
underive(derivedState)