javascript - react.js中如何将值传递给其他功能组件
问题描述
我想将值传递给其他页面或功能组件,有没有办法做到这一点?这就是我所做的。我已经在传递一个值,但只传递给“Home”组件。我想从“房间”组件传递值,但每次我导航到它的链接。我看不到值,但是,我只能看到“主页”组件中的值。
通过检查浏览器-> 控制台进行了尝试,只有 Home 组件获得了正确的值,Room 组件没有,但它也应该有
localhost:3000/home
-> 控制台在这里工作正常,它有“等待”和“接受”以成功响应
localhost:3000/room
-> 控制台在这里不起作用,只有“等待”
我想要的是当我单击“主页”组件上的按钮时,控制台的成功也必须显示在localhost:3000/room
页面中
这是一个代码沙箱:链接到代码沙箱
只需https://6ot0d.csb.app/home
在浏览器右侧输入:
家庭组件
import React, {useState} from 'react'
import {Link} from 'react-router-dom'
import { Button, TextField } from '@material-ui/core';
import Room from './RoomComponent'
function Home(){
const [joined, setJoined] = useState(false)
const handleJoin = () => setJoined(true)
return(
<React.Fragment>
<h3>Welcome, Student</h3>
<Room name={joined ? "joined" : "not joined"} />
<Button onClick={handleJoin} variant="contained" color="primary">Join Room</Button>
</React.Fragment>
)
}
export default Home;
房间组件
import React from 'react'
import {Link} from 'react-router-dom'
function Room(props){
if(props.name == "joined"){
console.log("Accept")
} else {
console.log("Wait")
}
return(
<React.Fragment>
<div>Room</div>
</React.Fragment>
)
}
export default Room;
主要部件
function Main(){
return(
<React.Fragment>
<Header />
<Switch>
<Container maxWidth="sm">
<Route path='/home' component={Home} />
<Route path='/about' component={About} />
<Route path='/room' component={Room} />
</Container>
</Switch>
{/* <Footer /> */}
</React.Fragment>
)
}
export default withRouter(Main);
解决方案
推荐阅读
- javascript - 使用 Canvas 进行绘制和缩放:Canvas 删除先前绘制的形状
- c - 排序数组中缺少数字
- javascript - 在JS中拆分字符串并更改值
- docker - 构建 Dockerfile 时相当于采购 ~/.bashrc
- python-3.x - 我想在使用 Regex 匹配时防止换行
- xcode - 有没有最快的方法来查看 Xcode 中的符号或类的文档?
- tensorflow - 在 AI Platform 上训练 TF 模型时未进行评估/未提供导出
- github - 通过删除远程分支查找我关闭的拉取请求
- node.js - 如何在像谷歌这样的猫鼬 nodejs 中获取最近的搜索?
- c# - 如何在 C# 中将 JObject 转换为 Object?