如何在/开始-声音上播放声音,在/停止-声音上停止声音?
/启动音
const history = useHistory();
const startSound = () => {
const sound = new Audio("test.mp3");
sound.play();
history.push("/stop-sound", [sound]);
}/停止音
const stopSound = () => {
sound.pause();
sound.currentTime = 0;
}此代码将在浏览器中显示一个错误。
DataCloneError:未能在“历史记录”上执行“pushState”:无法克隆对象。
history.push("/stop-sound", [sound]);这种样式将遵循React路由器文档。
我不知道如何使用声音对象和/停止声音。
另一个例子
/pass-文本
const PassTextPage = () => {
const history = useHistory();
const passText= () => {
history.push({
pathname: "/view-text",
state: { name: "Hello" }
});
};
return <button onClick={passText}>pass</button>;
};/视图-文本
const ViewTextPage = () => {
const text = props.location.state.name; // 'props' is not defined.
const viewText = () => {
console.log(text);
};
return <button onClick={viewText}>view</button>;
};App.jsx
const App = () => (
<BrowserRouter>
<Route exact path="/">
<Home />
</Route>
<Route exact path="/pass-text">
<PassTextPage />
</Route>
<Route exact path="/view-text">
<ViewTextPage />
</Route>
</BrowserRouter>
);发布于 2019-12-24 08:51:17
将属性传递给导航组件的方式
history.push({
pathname: '/stop-sound',
state: { name: 'Hello'}
});在导航组件中这样访问。
如果其无状态组件
let location = useLocation();
location.state.nameif类组件
this.props.location.state.namehttps://stackoverflow.com/questions/59466150
复制相似问题