Ich weiß nicht, was sie mit diesem "React Context" -Stoff sagen wollen - sie sprechen mit mir Griechisch, aber so habe ich es gemacht:
Übertragen von Werten zwischen Funktionen auf derselben Seite
Binden Sie in Ihrem Konstruktor Ihren Setter:
this.setSomeVariable = this.setSomeVariable.bind(this);
Deklarieren Sie dann eine Funktion direkt unter Ihrem Konstruktor:
setSomeVariable(propertyTextToAdd) {
this.setState({
myProperty: propertyTextToAdd
});
}
Wenn Sie es einstellen möchten, rufen Sie an this.setSomeVariable("some value");
(Vielleicht können Sie sogar damit durchkommen this.state.myProperty = "some value";
)
Wenn Sie es bekommen möchten, rufen Sie an var myProp = this.state.myProperty;
Verwenden alert(myProp);
sollte Ihnen geben some value
.
Zusätzliche Gerüstmethode zum Übertragen von Werten über Seiten / Komponenten hinweg
Sie können this
(technisch this.stores
) ein Modell zuweisen , um es dann zu referenzieren this.state
:
import Reflux from 'reflux'
import Actions from '~/actions/actions`
class YourForm extends Reflux.Store
{
constructor()
{
super();
this.state = {
someGlobalVariable: '',
};
this.listenables = Actions;
this.baseState = {
someGlobalVariable: '',
};
}
onUpdateFields(name, value) {
this.setState({
[name]: value,
});
}
onResetFields() {
this.setState({
someGlobalVariable: '',
});
}
}
const reqformdata = new YourForm
export default reqformdata
Speichern Sie diese in einen Ordner namens stores
alsyourForm.jsx
.
Dann können Sie dies auf einer anderen Seite tun:
import React from 'react'
import Reflux from 'reflux'
import {Form} from 'reactstrap'
import YourForm from '~/stores/yourForm.jsx'
Reflux.defineReact(React)
class SomePage extends Reflux.Component {
constructor(props) {
super(props);
this.state = {
someLocalVariable: '',
}
this.stores = [
YourForm,
]
}
render() {
const myVar = this.state.someGlobalVariable;
return (
<Form>
<div>{myVar}</div>
</Form>
)
}
}
export default SomePage
Wenn Sie eine this.state.someGlobalVariable
andere Komponente mit einer Funktion wie der folgenden eingestellt haben:
setSomeVariable(propertyTextToAdd) {
this.setState({
myGlobalVariable: propertyTextToAdd
});
}
dass Sie im Konstruktor binden mit:
this.setSomeVariable = this.setSomeVariable.bind(this);
Der Wert in propertyTextToAdd
wird SomePage
mit dem oben gezeigten Code angezeigt.
Redux
oderFlux
Bibliothek , die weltweit Daten oder Zustand verarbeiten kann. und Sie können es leicht durch alle Ihre Komponenten führen