ฉันไม่รู้ว่าพวกเขาพยายามจะพูดอะไรกับเนื้อหา "React Context" - พวกเขากำลังพูดภาษากรีกกับฉัน แต่นี่คือวิธีที่ฉันทำ:
แบกรับค่าระหว่างฟังก์ชันในหน้าเดียวกัน
ในตัวสร้างของคุณผูกตัวตั้งค่าของคุณ:
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
asyourForm.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
ไลบรารีที่สามารถจัดการข้อมูลหรือสถานะทั่วโลก และคุณสามารถส่งผ่านส่วนประกอบทั้งหมดของคุณได้อย่างง่ายดาย