I'm sorry, I'm very busy right now, but I will take a look as soon as I can.

On Wed, Mar 16, 2016 at 5:16 PM, Paul Stockley <[email protected]> wrote:

> Well I think I have hit a roadblock with the current state of JsInterop. 
> Given the code below
>>
>>
>
>
>>  public class Example {
>>
>>     @JsType(isNative = true, namespace = JsPackage.GLOBAL, name = "Object")
>>     private static class State extends BaseState {
>>         public String aStateVar;
>>     }
>>
>>     static public BaseState getInitialState() {
>>         State s = new State();
>>         s.aStateVar = "Initial Value";
>>         return s;
>>     }
>>
>>     protected static final native <S extends BaseState> S getState() /*-{;
>>         return this.state;
>>     }-*/;
>>
>>     static public ReactElement<?> render() {
>>
>>         //getState will not work because the this in the global JSNI 
>> function is bound to $Wnd
>>         State ourState = getState();
>>
>>         .
>>         .
>>     }
>>
>>     public native JavaScriptObject makeSpec() /*-{
>>         return {
>>             render : $entry(this.render()),
>>             getInitialState : $entry(this.getInitialState())
>>         };
>>     }-*/;
>>
>> }
>>
>>
> The render method gets called fine and within this method this points to
> the react element. I need to get the state and props that are stored as
> variables. The problem is I have no way of getting this.props unless I use
> JSNI. The JSNI function created is defined on the global window object and
> this is bound to the window object. So I am dead in the water until I can
> get the class based component working. Even if I get this working I will
> face another issue. In ES6 components you normally have to bind any
> callbacks to the enclosing object.this. e.g.
>
>
> render() { return ( <div onClick={this.tick.bind(this)}> Clicks: {this.
> state.count} </div> );
> }
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "GWT Contributors" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/google-web-toolkit-contributors/ac1fbf90-4b52-4a2e-9224-c4b16a218e17%40googlegroups.com
> <https://groups.google.com/d/msgid/google-web-toolkit-contributors/ac1fbf90-4b52-4a2e-9224-c4b16a218e17%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups "GWT 
Contributors" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/google-web-toolkit-contributors/CAN%3DyUA1WKLytqXjqxjCYkTVjTNJe6kGXkbO-oecj2LqgvVAW6g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to