[英]How to send back a parameter to a function pass as a param in react
I am new to react.js and find it difficult to understand the parent child component communication.我是 react.js 的新手,发现很难理解父子组件的通信。 I have a Stateful component, call cookpit and a Stateless component call Schedule.
我有一个有状态组件,调用 Cookpit 和一个无状态组件调用 Schedule。 I am passing a change function to Schedule from cookpit as props.
我正在将更改函数作为道具从炊具传递给 Schedule。
state = {
schedule : [
{
id:'01',
shift:"Morning UpStairs",
Monday:'X1',
Tuesday:'',
Wednesday:'',
Thursday:'',
Friday:''
},
{
id:'02',
shift:"Morning Down Stairs",
Monday:'X2',
Tuesday:'',
Wednesday:'',
Thursday:'',
Friday:''
},
{
id:'03',
shift:"Morning Parking Lot",
Monday:'',
Tuesday:'',
Wednesday:'',
Thursday:'',
Friday:''
},
],
};
let mapSchedule = this.state.schedule.map((item,i)=>{
return <Schedule schedule={item} key={item.id} changed={(event,day)=>this.onEmpChanged(event,item.id,day)}/>
});
In Schedule component I want set values to the each day of the state object.在 Schedule 组件中,我想为状态对象的每一天设置值。
<Col>
<select value={props.schedule.Monday} onChange={props.changed('monday')}>
<option value=""></option>
<option value="X1">X1</option>
<option value="X2">X2</option>
<option value="X3">X3</option>
<option value="X4">X4</option>
<option value="X5">X5</option>
<option value="X6">X6</option>
<option value="X7">X7</option>
</select>
</Col>
I am trying to pass the day to the parent with the change action so that I know which date should be updated , but its not working.我试图通过更改操作将这一天传递给父级,以便我知道应该更新哪个日期,但它不起作用。 please correct me.
请纠正我。
in the Parent component在父组件中
changed = (day,item)=>{
console.log(item.id,day)
}
render() {
return(
<div>
{
this.state.schedule.map(item=> <Schedule schedule={item} key={item.id} changed={this.changed}/>
)
}
</div>
)
}
and in the child component并在子组件中
export default function Schedule(props) {
return (
<div>
<select value={props.schedule.Monday} onChange={()=>props.changed('monday',props.schedule)}>
<option value=""></option>
<option value="X1">X1</option>
<option value="X2">X2</option>
<option value="X3">X3</option>
<option value="X4">X4</option>
<option value="X5">X5</option>
<option value="X6">X6</option>
<option value="X7">X7</option>
</select>
</div>
)
} }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.