简体   繁体   English

使用状态来控制

[英]UseState to control

I use a button to control the audio player mute but it makes the player default mute, I want that only mute when clicking.How to edit it我使用一个按钮来控制音频播放器静音,但它使播放器默认静音,我只想在单击时静音。如何编辑它

import React, { useState } from "react";
import ReactAudioPlayer from "react-audio-player";

const Test = () => {
  const [ismute, setOpen] = useState(false);
  return (
    <><div>
      <ReactAudioPlayer
        controls
        muted={ismute ? "false": "True"}
        src='https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3'
        loop
        autoPlay
         />
    </div><button onClick={() => setOpen(!ismute)}>click me!</button>
    </>
  );
};

export default Test

If you are passing as string ,如果您作为string传递,

muted={ismute ? "false": "True"}

since the initial value of the ismute is false as:因为ismute的初始值是false的:

const [ismute, setMute] = useState(false);

then what you are going to pass as a prop is True or false which is truthy value which makes ismute as always mute那么你将作为道具传递的内容是Truefalsetruthy值,这使ismute始终静音

For state ismute, initially assign value true instead of false as below:对于状态 ismute,最初分配值 true 而不是 false,如下所示:

const [ismute, setOpen] = useState(true);

You should pass muted prop as either true or false .您应该将muted prop 作为truefalse传递。 You are passing as a string你作为一个字符串传递

muted={ismute ? false: true }

代码沙盒演示 I've created a simulation for player

For state ismute, initially assign value true instead of false as below:对于状态 ismute,最初分配值 true 而不是 false,如下所示:

const [ismute, setOpen] = useState(true);

Another correction might be at component ReactAudioPlayer :另一个更正可能是组件ReactAudioPlayer

<ReactAudioPlayer
    controls
    muted={ismute}
    src='https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3'
    loop
    autoPlay
     />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM