2017-12-19 22 views
0

Ich bin mit Reduzierungen seit einigen Tagen zu kämpfen, auch wenn nach der Aktion der Staat richtig erscheint, Reaktion Komponente nicht aktualisiert ...Array Bindung mit Electronjs/Serialport & React/Redux

if (getPorts.test(action)) { 
    var service = new SerialService(); 
    var dataResult = new Array<any>(); 
    service.listDevices(function (err: any, data: Array<any>) { 
    data.forEach((item) => { 
     dataResult.push({ ...item }) 
    }); 
    }); 
    return { 
    ...state, 
    ports: dataResult 
    }; 
} 

I habe viele Möglichkeiten, mit oder ohne Spread-Operator (mit object.assign())

Aus meinem Verständnis, ist möglicherweise etwas wegen des Rückrufs, die Geräte listet vermisst, denke, ich bin nicht gut verwalten, wie ich aktualisieren sollte die Benutzeroberfläche.

Irgendwelche Ideen oder beraten?

Antwort

0

Ich nehme an, oben Code Schnipsel sind Teil der Reducer. Reducer sollte immer synchrone sein, Sie können nicht erwarten, asynchrone Aktualisierung in Ihrem Rückruf, um verbundene Komponente im Render-Zyklus korrekt zu aktualisieren. Versuchen Sie nach Redux-Middlewares zu suchen, um asynchrone Aktionen zu unterstützen.

+0

Vielen Dank für Ihre Antwort, Sie haben Recht, das ist nur ein Teil meiner Reduzierung. Ich werde Middleware anschauen. – Miuu