2016-09-01 4 views
0

Kann jemand vorschlagen, wie Warnungen von Dritten zu entfernen? https://facebook.github.io/react/warnings/dont-call-proptypes.htmlReact native rufen PropTypes Warnungen nicht auf?

ich weiß nicht, wie zu implementieren und wo Code, der offiziellen Dokumentation erwähnt, zu setzen. Sie nehmen Code aus reagieren-Bootstrap

export default function deprecated(propType, explanation) { 
    return function validate(props, propName, componentName) { 
if (props[propName] != null) { 
     const message = `"${propName}" property of 
     "${componentName}" has  been deprecated.\n${explanation}`; 
    if (!warned[message]) { 
    warning(false, message); 
    warned[message] = true; 
    } 
} 

return propType(props, propName, componentName); 
}; 
} 

Bitte schreiben Sie Schritt für Schritt Dritte Warnungen zu lösen.

Dank

Antwort

0

Wenn alles, was Sie zu tun versuchen, ist die „Yellow Box“ Debug-Helfer erscheinen zu verhindern, können Sie die console.ignoredYellowBox Eigenschaft auf weißen Liste Präfixe verwenden, die nicht angezeigt werden sollen:

const existingIgnoreList = console.ignoredYellowBox; 
const prefixesToIgnore = [ 
    'Warning: "foo" property of "Bar"' 
]; 

console.ignoredYellowBox = existingIgnoreList 
    ? existingIgnoreList.concat(prefixesToIgnore) 
    : prefixesToIgnore; 

Edit basierend auf Kommentare: Wenn Sie die console.error Nachricht vollständig unterdrücken möchten, gibt es keine offizielle und legitime Möglichkeit, dies zu tun.

Was Sie können tun ist Affe Patch die console.error Methode und filtern Sie heraus, dass bestimmte Nachricht. Das Patchen muss geschehen, nachdem Ihr Anwendungscode ausgewertet wurde, aber bevor die problematische Komponente gemountet wird.

Ein guter Platz wäre componentWillMount Handler in Ihrer Root-Komponente sein:

componentWillMount() { 
    console.__error = console.error; 
    console.error = function overrideConsoleError(...args) { 
    if (!typeof args[0] === 'string' || !args[0].startsWith('Warning: "foo" property of "Bar"')) { 
     console.__error(...args); 
    } 
    }; 
} 

Aber bitte, bitte dies nicht tatsächlich tun. Das ist eine wirklich schlechte Idee :)

+0

Ja, es gibt eine gelbe Box, aber offizielle Dokumente schlagen etwas anderes vor. Ich bin eher bereit, den Empfehlungen zu folgen, die sie in ihren offiziellen Dokumenten erwähnen. alles, was Sie aus dem obigen Code vorschlagen können. Die Lösung, die Sie bereits auf dem Stackoverflow zur Verfügung gestellt haben http://stackoverflow.com/questions/38907803/how-to-suppress-warning-due-to-a-third-party-proptypes-library-in-react-native/38907884? noredirect = 1 # comment65901347_38907884 –

+0

Nach der Implementierung dieser Lösung habe ich immer noch eine Warnung in der Debugging-Konsole in roter Farbe. –

+1

Das Problem ist, dass der störende Code nicht in Ihrer eigenen Codebasis ist, es ist in einem Drittanbieter-Modul. Die Dokumente in Ihrer Frage sind etwas, was der Bibliotheksautor tun sollte. Damit ** Sie ** es reparieren können, müssen Sie diese Bibliothek ausgliedern, die ursprüngliche Ursache des Problems korrigieren, eine Pull-Anforderung senden, auf eine neue Version warten usw. Während Sie das tun, müssen Sie den Fehler entfernen , Ich habe eine lustige und kreative Möglichkeit hinzugefügt, um das Problem zu umgehen :) – jevakallio

0

Können Sie Ihr Code-Snippet zeigen, wo Sie mit Propypen umgehen? Vielleicht löst eine Bibliothek oder gar nativer Code diese React-Warnungen aus, also überprüfe, ob deine native Version mit der reaktiven übereinstimmt.

+0

Diese Warnungen kommen aus der dritten Partei Bibliothek. Ich zögere nicht mit dem Prototyp –

Verwandte Themen