Saya tidak tahu apa yang mereka coba katakan dengan hal-hal "Konteks Bereaksi" - mereka berbicara bahasa Yunani, bagi saya, tapi begini cara saya melakukannya:
Membawa nilai antar fungsi, di halaman yang sama
Dalam konstruktor Anda, ikat penyetel Anda:
this.setSomeVariable = this.setSomeVariable.bind(this);
Kemudian nyatakan fungsi tepat di bawah konstruktor Anda:
setSomeVariable(propertyTextToAdd) {
this.setState({
myProperty: propertyTextToAdd
});
}
Saat Anda ingin menyetelnya, panggil this.setSomeVariable("some value");
(Anda bahkan mungkin bisa lolos dengan this.state.myProperty = "some value";)
Jika Anda ingin mendapatkannya, telepon var myProp = this.state.myProperty;
Menggunakan alert(myProp);seharusnya memberi Anda some value.
Metode perancah ekstra untuk membawa nilai di seluruh halaman / komponen
Anda dapat menetapkan model ke this(secara teknis this.stores), sehingga Anda dapat mereferensikannya dengan 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
Simpan ini ke folder bernama storessebagai yourForm.jsx.
Kemudian Anda dapat melakukan ini di halaman lain:
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
Jika Anda telah mengatur this.state.someGlobalVariablekomponen lain menggunakan fungsi seperti:
setSomeVariable(propertyTextToAdd) {
this.setState({
myGlobalVariable: propertyTextToAdd
});
}
yang Anda ikat dalam konstruktor dengan:
this.setSomeVariable = this.setSomeVariable.bind(this);
nilai dalam propertyTextToAddakan ditampilkan dengan SomePagemenggunakan kode yang ditunjukkan di atas.
ReduxatauFluxpustaka yang dapat menangani data atau status secara global. dan Anda dapat melewatinya dengan mudah melalui semua komponen Anda