javascript - 为什么将 .map() 的结果插入 JSX 会导致错误?
问题描述
当我尝试在source
道具中应用值时,有人可以帮助我理解为什么会出现错误吗?
render(){
我在和之间有以下代码块return(
。它通过本地托管的一系列视频及其相应的路径进行映射。
render() {
const { loadVideo } = this.state;
let videoComp = [];
if(loadVideo){
videoOptions.map((videoOptions) => {
console.log('videoOptions console:',videoOptions.video)
console.log('id console:',videoOptions.id)
videoComp = (
<Video
source={require(videoOptions.video)} // this line produces an error
key={videoOptions.id}
/>
)
})
}
return (
此代码原样返回以下错误。
TransformError src/components/home/HomeScreen.js:
src/components/home/HomeScreen.js:
Invalid call at line 98:
require(videoOptions.video)
但是,如果我取出线路source={require(videoOptions.video)}
,错误就会消失,并且两个日志确实会吐出正确的数据。
当然,如果我要硬编码source
,一切都很好。
render() {
const { loadVideo } = this.state;
let videoComp = [];
if(loadVideo){
videoOptions.map((videoOptions) => {
console.log('videoOptions console:', `../../assets/videos/${videoOptions.video}`)
console.log('id console:',videoOptions.id)
videoComp = (
<Video
source={require('../../assets/videos/087194062-dodgers-stadium_608x1080.mp4')}
key={videoOptions.id}
/>
)
})
}
return (
编辑:我删除了一个简介,询问为什么在内部使用模板文字require
也会返回错误。这个问题是重复的
解决方案
推荐阅读
- c# - 获取用户的动态输入
- c# - How to automatically refresh access token in ASP.NET Core MVC app
- javascript - 如何将 textarea 值设置为英雄文本?
- hdf5 - 如何下载 h5dump?(h5dump:找不到命令)
- python - Django:用嵌套关系的总数注释查询集
- php - 从数据库中提取 id 后包含 PHP 文件名
- apache-calcite - 如何使用 RelNode 对象评估 sql 查询
- amazon-web-services - 如何使用 .ebextensions 将 Application Load Balancer 固定响应添加到 AWS Elastic Beanstalk
- lucene - Lucene - 如何在给定父 docID 的情况下获取父块中的所有子文档
- autohotkey - ImageSearch 命令失败