Javascript 在功能组件之间传递表单数据
我是新的反应,我仍然试图理解这一切是如何运作的。 假设我有三个Javascript 在功能组件之间传递表单数据,javascript,reactjs,Javascript,Reactjs,我是新的反应,我仍然试图理解这一切是如何运作的。 假设我有三个组件 调用所有其他组件的主应用程序组件如下所示: function App() { return ( <Router> <div> <Route path="/object-list" exact component={ObjectsList}/> <Route
组件
调用所有其他组件
的主应用程序
组件如下所示:
function App() {
return (
<Router>
<div>
<Route path="/object-list" exact component={ObjectsList}/>
<Route path="/" exact component={Header}/>
</div>
</Router>
);
}
我想要实现的是使用提交表单中的数据保存状态,然后将其发送到ObjectsList
组件
const ObjectsList = ({selectedObjects}) => {
return (
<div>
{
console.log(selectedObjects)
}
</div>
);
}
无论我做什么,当我在
objects列表组件中尝试控制台logselectedObjects
时,我都会得到undefined
,我的想法刚刚完成。我真的不知道我需要如何将此提交的数据传递给其他组件。您正在尝试在以不同路径呈现的组件之间共享状态。我们可以通过以下方式实现这一点:
下面是一个工作示例
const WebStart = () => {
const [inputName, setInputName] = useState("")
const [inputCity, setInputCity] = useState("")
const [selectedObjects, setSelectedObjects] = useState([])
let objects = [
{name: "Object1", city: "City1"},
{name: "Object2", city: "City2"}
]
const handleSubmit = e => {
e.preventDefault()
const objectToAdd = {inputName, inputCity};
setSelectedObjects(objectToAdd)
}
return (
<div>
<div className="webstart-page">
<form onSubmit={handleSubmit}>
<input value={inputName}/>
<input value={inputCity}/>
<input type="submit"
value="search"
/>
</form>
</div>
)
}
const ObjectsList = ({selectedObjects}) => {
return (
<div>
{
console.log(selectedObjects)
}
</div>
);
}
function Header() {
const [selectedObjects, setSelectedObjects] = useState([])
return (
<header>
<Navigation/>
<WebStart setSelectedObjects={setSelectedObjects}/>
<ObjectsList selectedObjects={selectedObjects}/>
</header>
)
}