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 stores
sebagai 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.someGlobalVariable
komponen lain menggunakan fungsi seperti:
setSomeVariable(propertyTextToAdd) {
this.setState({
myGlobalVariable: propertyTextToAdd
});
}
yang Anda ikat dalam konstruktor dengan:
this.setSomeVariable = this.setSomeVariable.bind(this);
nilai dalam propertyTextToAdd
akan ditampilkan dengan SomePage
menggunakan kode yang ditunjukkan di atas.
Redux
atauFlux
pustaka yang dapat menangani data atau status secara global. dan Anda dapat melewatinya dengan mudah melalui semua komponen Anda