2014-11-24 5 views
7

React verwendet einen Merge util haben, ist, dass jetzt veraltet und ersetzt mit https://github.com/facebook/react/blob/dca7ffbe21d2b27d0c7ff898bbaa27dab84e4043/src/stubs/Object.assign.jsWie kann ich die eingebaute Object.assign in reagieren?

Frage mich nur, ob es möglich ist, diese Version von assign in meinem Code zu benutzen? Ist es irgendwie möglich, es einzubeziehen? Wenn ja, welchen Pfad sollte ich verwenden?

danke.

+0

FWIW, [React docs] (https://facebook.github.io/react/docs/transferring-proops.html) scheint derzeit die Verwendung von Unterstrich/lodash zu empfehlen: _ "Underscore unterstützt _.omit zum Ausfiltern Eigenschaften und _.extend, um Eigenschaften auf ein neues Objekt zu kopieren. "_ – XML

Antwort

10

Sie können object.assign package verwenden. Es ist ein ES6 Object.assign() "ponyfill".

package.json:

"dependencies": { 
    "object-assign": "^1.0.0", 
    "react": "^0.12.0", 
    ... 
    }, 

Dann, wo Sie wollen, es zu benutzen:

var assign = require('object-assign'); 

var MessageStore = assign({}, EventEmitter.prototype, { 

    emitChange: function() { 
    ... 

Die Facebook Flux Chat example es verwendet.

+0

Sie können auch einfach den Polyfüllaufzug es6 verwenden und noch nützlichere Dienstprogramme erhalten. – FakeRainBrigand

+0

Danke für die Bearbeitung :) Der Repository-Besitzer erklärt Ponylify als ein Polyfill, das die native Methode nicht überschreibt. Ich dachte, es wäre ein üblicher Begriff :) – nilgun

+0

Heh, das habe ich noch nicht gehört. – FakeRainBrigand

4

Ich verwende Object.assign ausgeliefert reagieren mit 0,12 (require('react/lib/Object.assign'))

WARNUNG: Diese private API ist, die jederzeit ändern könnte, so kann man nicht wirklich auf sie verlassen.

+4

Jeder React-Helper im Paket wird als private API betrachtet und nicht unterstützt. Es kann in der nächsten Version ohne Ankündigung entfernt, verschoben oder geändert werden. –

+7

Ich denke, es ist angemessen, Bedenken über die Verwendung einer privaten API durch jemanden auszudrücken. Allerdings sind alle Downvotes hier uncool. OP fragte, ob es irgendwie möglich ist, die React object.assign-Funktionalität einzuschließen. Nicht irgendeine andere ähnliche Funktionalität, aber diese bestimmte. Dieses Plakat beantwortete die Frage perfekt, mit klaren Details. Wenn Sie die Frage des OP nicht mögen, bieten Sie Ihre eigene alternative Antwort, die eine bessere Option klärt. Aber verprügeln Sie nicht auf einem Plakat, das tut, wie gefragt, und tut es genau. – XML

+1

@ develop7 vielleicht könnten Sie Ihre Antwort entsprechend der FWIW von XMLLilley oben bearbeiten? Sie haben richtig geantwortet, aber es ist nicht empfehlenswert, dies zu tun, aber Sie sollten lieber lodash oder Unterstrich verwenden. – noreflow

Verwandte Themen