Comments (2)
Hi @mathewdgardner!
<slot/>
is translated to the anonymous function @inner_content.()
and as such, can only access variables (consequently the context) that belong to the same scope where it was defined. So you need to either move Parent.ContextProvider
out of Parent
and place it explicitly as a parent of Child
or pass whatever you need using <slot :props={{ some_prop: value }}/>
and then retrieve it using :let={{ some_prop: var }}
.
I'm currently working on the documentation of the slots API, where I explain how :props
and :let
works. I should release the new docs by the end of the week. In the meantime, in case you need to see how it works, you can take a look at slot_test.exs. There are many tests using :props
and :let
.
from surface.
Thank you @msaraiva for your clarification.
I can move the context into the parent but I need the child to be able to get updates to it. Is there any mechanism for a child getting context from the parent updating or re-rendering?
from surface.
Related Issues (20)
- Since update : no route found for POST after a <Form> is submitted HOT 1
- Improve error messaging when using `<#slot />` in template via `embed_sface/1` macro
- Setting which modules can pass context values outside of config
- Erlang Error in Elixir Language Server with Surface HOT 1
- [Using a plugin] Scoped CSS changes require two page reloads. HOT 1
- inputs_for/3 warning HOT 1
- Warnings on Select component with disabled property
- Props missing inside `handle_event()` `socket.assigns` map. HOT 3
- mix surface.init: no function clause matching in Sourceror.Zipper.down/1 HOT 3
- Support for LiveViewNative? HOT 5
- Submitted forms don't carry the "submitter" attribute
- Surface CSS scoping attributes don't work when root component is a component
- When using :on-click={"name", target="#target_id"} I cannot seem to get a sibling to target another sibling node that is rendered in the same parent. HOT 1
- Compatibility with LiveView 0.20 HOT 7
- Question: How would you make the sample tab component to use svg icons instead of font icons HOT 4
- Elixir 1.16: negative steps are not supported in String.slice/2, pass 1..-2//1 instead
- Malformed HTML when using LiveRedirect with another component inside HOT 1
- Mix.env() usage can cause troubles in release HOT 2
- Question: Form example on latest version HOT 2
- error: module Surface.Components.Form.Inputs is not loaded and could not be found. This may be happening because the module you are trying to load directly or indirectly depends on the current module<Description> HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from surface.