Javascript 在React中如何将道具从孩子传递给家长?
我有一个动态表,它呈现用户选择的项目列表。用户可以从下拉菜单中选择一个项目,然后将该项目添加到列表中。现在,我将项目列表存储在组件的状态中,这允许动态呈现表。我希望用户能够单击表中的某个项目,并能够编辑该项目的某些部分,例如他们正在选择的数量。一旦用户从表中单击该项,就会出现一个模式,其中包含来自该特定项的信息。我的问题是,在模式中,当用户更改(比如该项目的数量)时,我希望模式关闭,然后使用用户更改的值更新表 有没有办法将更新后的项目列表传回给家长?或者这是不可行的?如果是这样的话,正确的方法是什么。我将在下面发布我的代码,这样你们就可以更好地了解我要实现的目标 注意我的模式尚未完成,但我只想知道如何将道具传递回父组件 Parent.jsJavascript 在React中如何将道具从孩子传递给家长?,javascript,reactjs,Javascript,Reactjs,我有一个动态表,它呈现用户选择的项目列表。用户可以从下拉菜单中选择一个项目,然后将该项目添加到列表中。现在,我将项目列表存储在组件的状态中,这允许动态呈现表。我希望用户能够单击表中的某个项目,并能够编辑该项目的某些部分,例如他们正在选择的数量。一旦用户从表中单击该项,就会出现一个模式,其中包含来自该特定项的信息。我的问题是,在模式中,当用户更改(比如该项目的数量)时,我希望模式关闭,然后使用用户更改的值更新表 有没有办法将更新后的项目列表传回给家长?或者这是不可行的?如果是这样的话,正确的方法是
导出默认父组件{
建造师(道具){
超级(道具);
此.state={
ItemList=[],
idc=“”,
}
AddItemHandler(){
…要添加到项目列表的内容
}
RenderModal(){
让itemList=this.state.itemList
}
行单击(e){
//console.log(e.target.id)
var items=this.state.ItemList;
for(设i=0;i
您不能将道具从孩子传递给家长。但是,孩子可以通过一些方式与其家长沟通,这可以解决您的问题
方法通常是使用回调-将一个函数从父级传递给子级,子级可以调用该函数来更新父级的状态。下面是一个更新父级状态的示例:
function Parent() {
const [counter, setCounter] = useState(0)
return (
<div>
Current: {state}
<Child increment={() => {
setCounter(current => current + 1)
}}}/>
</div>
)
}
function Child(props) {
return <button onClick={props.increment}>Click me</button>
}
函数父函数(){
常量[计数器,设置计数器]=使用状态(0)
返回(
当前:{state}
{
设置计数器(电流=>电流+1)
}}}/>
)
}
功能儿童(道具){
返回单击我
}
(这个例子是使用钩子完成的,我强烈建议学习钩子)
这里没有挂钩:
class Parent extends Component {
constructor() {
this.state = { counter: 0 }
}
render() {
return (
<Child increment={() => {
this.setState((current) => {
return { counter: current.counter + 1 }
})
}}}/>
)
}
}
function Child(props) {
return <button onClick={props.increment}>Click me</button>
}
类父级扩展组件{
构造函数(){
this.state={counter:0}
}
render(){
返回(
{
此.setState((当前)=>{
返回{counter:current.counter+1}
})
}}}/>
)
}
}
功能儿童(道具){
返回单击我
}
是否有一种方法可以在不使用挂钩的情况下更新此答案,我不知道这些工具是如何工作的,因此这使我对这个示例有点困惑。谢谢。