我会将组件呈现为标签内容而不是字符串。
实际上我收到了这个错误:
“Box”组件的简写 prop 传递了一个 JSX 元素,但该插槽仅支持字符串|数字|对象|数组|ReactElements。
import AudioItem from '../containers/Media'
const AudioLabel = (props) => {
let url = "https://www.soundhelix.com/examples/mp3/SoundHelix-Song-1.mp3"
const [audio] = useState(new Audio(url));
const [isPaused, setIsPaused] = useState(audio.paused)
return (<Label content={({ ...props }) => (<><span>{props.content}</span> <AudioItem isPaused={isPaused} setIsPaused={setIsPaused} audio={audio} /></>)}
circular
image={{
src: 'public/images/avatar/small/matt.jpg',
avatar: true,
}}
icon={
<CloseIcon
/>}
/>)
}
export default AudioLabel
称为组件作为道具。
import { Button, Header, List, RadioGroup, ItemLayout } from '@fluentui/react-northstar'
import { PlayIcon, PauseThickIcon } from '@fluentui/react-icons-northstar'
const AudioItem = (props) => {
return (
<ItemLayout
headerMedia={<Button icon={props.isPaused ? (<PlayIcon />) : (<PauseThickIcon />)} onClick={() => { props.isPaused ? props.audio.play() : props.audio.pause(); props.setIsPaused(props.audio.paused) }} text content={props.isPaused ? "Play" : "Pause"} />}
/>
)
}
如何将组件(带道具)传递为content
?
问题再现