2016-07-18 7 views
1

Ich benutze Plastiq, um eine kleine Website zu bauen.Plastiq nicht aktualisieren Ansicht bis zum zweiten Render

Ich habe ein Ereignis, das ausgelöst wird, wenn ich auf eine Schaltfläche klicke. Das Ereignis gibt eine Zusage zurück, die das Modell beim Auflösen aktualisiert.

Das Problem, das ich habe, ist, dass die Ansicht nicht aktualisiert wird, wenn das Modell funktioniert. Wenn ich die Schaltfläche ein zweites Mal drücke (das Ereignis wird erneut ausgelöst), wird die Ansicht aktualisiert.

Hier ist ein Code, der das Problem demonstriert:

/** @jsx plastiq.jsx */ 
var plastiq = require('plastiq'); 
var http = require('httpism'); 

class App { 
    constructor() { 
    this.apiKey = '...'; 
    this.forecast = {}; 
    } 

    getForecast() { 
    return http.get(`http://api.openweathermap.org/data/2.5/weather?q=${this.city}&appid=${this.apiKey}`) 
    .then((response) => { 
     this.forecast = response.body; 
    }) 
    } 

    render() { 
    return <div> 
     <h1>Weather</h1> 
     <input type='text' binding={[this, 'city']} /> 
     <button onclick={() => { this.getForecast() } }>Get forecast</button> 
     <div> 
     { this.forecast.wind } 
     </div> 
    </div>; 
    } 
} 

plastiq.append(document.body, new App()); 

Wie kann ich die Ansichten auf die Schaltfläche geklickt wird, das erste Mal zu aktualisieren?

Dank

Antwort

2

Ihr Klick Rückruf ein Versprechen für plastiq rerender zurückkehren.

dieses Turn:

onclick={() => { this.getForecast() }} 

In diese:

onclick={() => this.getForecast() }