Я не знаю, що вони намагаються сказати з цим матеріалом "Реагувати контекст" - вони говорять мені грецькою мовою, але ось як я це зробив:
Перенесення значень між функціями, на одній сторінці
У конструкторі зв’яжіть свій сетер:
this.setSomeVariable = this.setSomeVariable.bind(this);
Потім оголосіть функцію трохи нижче вашого конструктора:
setSomeVariable(propertyTextToAdd) {
this.setState({
myProperty: propertyTextToAdd
});
}
Коли ви хочете встановити його, зателефонуйте this.setSomeVariable("some value");
(Можливо, ви навіть зможете втекти this.state.myProperty = "some value";
)
Коли ви хочете отримати його, зателефонуйте var myProp = this.state.myProperty;
Використання alert(myProp);
має дати вам some value
.
Додатковий метод риштування для перенесення значень по сторінках / компонентам
Ви можете призначити модель this
(технічно this.stores
), щоб потім посилатись на неї 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
Збережіть це у папці під stores
назвою " yourForm.jsx
.
Потім ви можете зробити це на іншій сторінці:
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
Якби ви встановили this.state.someGlobalVariable
інший компонент за допомогою такої функції:
setSomeVariable(propertyTextToAdd) {
this.setState({
myGlobalVariable: propertyTextToAdd
});
}
що ви прив'язуєте в конструкторі за допомогою:
this.setSomeVariable = this.setSomeVariable.bind(this);
значення в propertyTextToAdd
буде відображатися за SomePage
допомогою коду, показаного вище.
Redux
абоFlux
бібліотеку, яка може обробляти дані або стан у всьому світі. і ви зможете легко пройти через усі його компоненти