【发布时间】:2019-11-11 17:38:13
【问题描述】:
我制作了这个反应应用程序,其中有一个父组件为App.js,它具有三个子组件。第一个子组件的某些状态正在被父组件中的其他两个子组件更改。
所以首先我在父组件中传递状态,然后将它们作为道具传递给其他两个子组件。这是我的一段代码。
这是我的App.js
function App() {
var firstvalueoftextarea,
setfirstvalueoftextarea,
secondvalueoftextarea,
setsecondvalueoftextarea;
var PanelOfResult = function(
firstvalueoftextarea,
setfirstvalueoftextarea,
secondvalueoftextarea,
setsecondvalueoftextarea
) {
firstvalueoftextarea = firstvalueoftextarea;
setfirstvalueoftextarea = setfirstvalueoftextarea;
secondvalueoftextarea = secondvalueoftextarea;
setsecondvalueoftextarea = setsecondvalueoftextarea;
};
return (
console.log("Rendering of component"),
(
<div className="App">
<ResultPanel PanelOfResult={PanelOfResult} />
<SecondChildComponent
valueoftextarea={firstvalueoftextarea}
setvalueoftextarea={setfirstvalueoftextarea}
/>
<ThirdChildComponent
className="Symbols"
firstvalueoftextarea={firstvalueoftextarea}
setfirstvalueoftextarea={setfirstvalueoftextarea}
secondvalueoftextarea={secondvalueoftextarea}
setsecondvalueoftextarea={setsecondvalueoftextarea}
/>
</div>
)
);
}
export default App;
这是我的ResultPanel.js
import React from "react";
function ResultPanel(props) {
const [firstvalueoftextarea, setfirstvalueoftextarea] = React.useState(
"Hello World"
);
const [secondvalueoftextarea, setsecondvalueoftextarea] = React.useState("");
props.PanelOfResult(
firstvalueoftextarea,
setfirstvalueoftextarea,
secondvalueoftextarea,
setsecondvalueoftextarea
);
return (
<div>
<h1>{firstvalueoftextarea}</h1>
</div>
);
}
export default ResultPanel;
ResultPanel 组件的状态可以通过 SecondChildComponent 和 ThirdChildComponent 更改,并且这些组件代码工作正常。
当 SecondChildComponent 尝试更改 ResultPanel 的状态时,我收到错误 - TypeError: this.props.setvalueoftextarea is not a function
谁能帮我解决我的错误?我不确定在 ResultPanel 组件中哪里调用 PanelOfResult 回调方法。
【问题讨论】:
标签: javascript reactjs