Javascript 在React中导入prop数组值?

Javascript 在React中导入prop数组值?,javascript,reactjs,Javascript,Reactjs,我一直致力于在React中创建一个小型音乐播放器程序。我想知道是否有一种方法可以一次将所有这些值作为单个导入语句导入 我注意到,当我尝试将值硬编码到props数组中时,它将不起作用,因为文件实际上是从/static/media目录获取的 示例代码: // Lightweight library for audio playing import ReactAudioPlayer from 'react-audio-player'; import LikeBtn from './LikeBtn';

我一直致力于在React中创建一个小型音乐播放器程序。我想知道是否有一种方法可以一次将所有这些值作为单个导入语句导入

我注意到,当我尝试将值硬编码到props数组中时,它将不起作用,因为文件实际上是从/static/media目录获取的

示例代码:

// Lightweight library for audio playing
import ReactAudioPlayer from 'react-audio-player';
import LikeBtn from './LikeBtn';
import Shuffle from '../img/shuffle_bg.jpg';
// Imports from music audio files
import track1 from '../music/Arc North - Catch Me When I Fall (ft. Sarah de Warren) [Magic Release].mp3';
import track2 from '../music/Ellis - Clear My Head.mp3';
import track3 from '../music/Jim Yosef & Alex Skrindo - Ruby [NCS Release].mp3';

// Import music covers
import bg1 from '../img/song_covers/42388294_800_800.jpg';
import bg2 from '../img/song_covers/clearhead.jpg';
import bg3 from '../img/song_covers/000377402250.jpg';

class Player2 extends React.Component{
  constructor(props){
    super(props);
    this.state = {
      playlist: [
      // This would work because it fetches the imported value.
      {id: 1, name:'Catch Me When I Fall', author: 'Arc North ft. Sarah de Warren', img: bg1, audio: track1}, 
      // Does not work because it doesn't actually fetch the data from relative path.
      {id: 2, name:'Clear My Head', author: 'Ellis', img: '../img/song_covers/clearhead.jpg', audio:'../music/Ellis - Clear My Head.mp3},

您可以像下面那样创建一个文件“mediaFiles.js”,然后只导入该文件

 export default {
  img1: require('../Assets/img/shuffle_bg.jpg'),
  track1: require('../music/Ellis - Clear My Head.mp3'),
  }
在Player2文件中,使用以下行导入:

import mediaFiles from '../Utils/mediaFiles';
你应该可以这样使用它

this.state = {
          playlist: [
          {id: 1, name:'Catch Me When I Fall', author: 'Arc North ft. Sarah de Warren', img: mediaFiles.img1, audio: mediaFiles.track1}]
仅供参考:相应地更新路径

您可以创建一个文件“mediaFiles.js”,如下所示,并仅导入该文件

 export default {
  img1: require('../Assets/img/shuffle_bg.jpg'),
  track1: require('../music/Ellis - Clear My Head.mp3'),
  }
在Player2文件中,使用以下行导入:

import mediaFiles from '../Utils/mediaFiles';
你应该可以这样使用它

this.state = {
          playlist: [
          {id: 1, name:'Catch Me When I Fall', author: 'Arc North ft. Sarah de Warren', img: mediaFiles.img1, audio: mediaFiles.track1}]

仅供参考:相应地更新路径

如果您使用公用文件夹,您应该能够使用URL动态执行此操作。如果使用公用文件夹,则应该能够使用URL动态执行此操作。这看起来像是一个干净的解决方案,当我测试它。谢谢这看起来像是一个干净的解决方案,当我测试它。谢谢