как вернуть результат из функции компоненту в ReactJS

#reactjs

#reactjs

Вопрос:

Я пытаюсь вернуть значение функции компоненту в reactjs. Консоль.журнал внутри функции отображается, но результат не возвращается. У меня каждый раз возникают проблемы с этим сценарием. Может ли кто-нибудь, пожалуйста, помочь мне.

Ниже приведен мой код. Я не могу отобразить тег формы сигнала, который должен быть возвращен из функции encodedAudioFilename()

 const PopUpModal = props => {
   .....

   some code
   .....

function encodedAudioFilename(){
    const regex = /(?<=recordings/). /gm;
    let m;

    while ((m = regex.exec(audioLocation)) !== null) {
     
        // This is necessary to avoid infinite loops with zero-width matches
        if (m.index === regex.lastIndex) {
            regex.lastIndex  ;
        }
        // The result can be accessed through the `m`-variable.
        m.forEach((match, groupIndex) => {
            console.log("https://d30pkmxa7non58.cloudfront.net/" encodeURIComponent(match));
            
            return <Waveform src={"https://d30pkmxa7non58.cloudfront.net/" encodeURIComponent(match) }/>
        });
    }
  }

return (
 <ModalBody>
          <div className="wave-player">
          {encodedAudioFilename()}
        </div>
</ModalBody>
)
 
};
export default PopUpModal;
  

Комментарии:

1. Прежде всего. вам придется использовать функцию отображения списка, потому что forEach ничего не возвращает.

2. Большое спасибо, я не осознавал, что использую forEach. Использование Map решило проблему.

Ответ №1:

Ваша функция на самом деле ничего не возвращает

Попробуйте приведенный ниже код

 function encodedAudioFilename(){
    const regex = /(?<=recordings/). /gm;
    let m;

    let ar = [];
    while ((m = regex.exec(audioLocation)) !== null) {
     
        // This is necessary to avoid infinite loops with zero-width matches
        if (m.index === regex.lastIndex) {
            regex.lastIndex  ;
        }
        // The result can be accessed through the `m`-variable.
        arr = m.map((match, groupIndex) => {
            console.log("https://d30pkmxa7non58.cloudfront.net/" encodeURIComponent(match));
            
            return <Waveform key={groupIndex} src={"https://d30pkmxa7non58.cloudfront.net/" encodeURIComponent(match) }/>
        });
        arr = [...ar, ...arr];
    }
    return ar;
  }