Javascript React Native:如何将require(path)与动态URL一起使用?

Javascript React Native:如何将require(path)与动态URL一起使用?,javascript,ios,react-native,require,Javascript,Ios,React Native,Require,我想使用WebView显示一些html内容 以下是一个例子: return ( <WebView style={styles.container} source={source} scalesPageToFit={Boolean(true)} onNavigationStateChange={this._on

我想使用WebView显示一些html内容

以下是一个例子:

return (
            <WebView
                    style={styles.container}
                    source={source}
                    scalesPageToFit={Boolean(true)}
                    onNavigationStateChange={this._onNavigationStateChange} />
    )
2) 对于ios,我需要使用smth。像这样:

source = {uri: `file:///android_asset/contents/${languageId}text.html`}
source = require(`../srv/localization/contents/${languageId}text.html`)
对于android来说,它工作得很好,但是对于ios来说,它不工作。 这个url也适用于iOS

require(`../srv/localization/contents/entext.html`)
据我所知,这是因为动态url(${languageId}text.html)


问题是如何为iOS使用动态url?

正如您所发现的,您不能为require使用动态url。这是因为无论源代码在代码中的位置如何,都需要在应用程序启动时获取源代码。您应该需要所有{languageId}text.html并将所需变量传递给源:

var语言={
en:require(`../srv/localization/contents/entext.html`)
...
}
并按如下方式使用:

source = require(language[en])

正如您所发现的,您不能为require提供动态url。这是因为无论源代码在代码中的位置如何,都需要在应用程序启动时获取源代码。您应该需要所有{languageId}text.html并将所需变量传递给源:

var语言={
en:require(`../srv/localization/contents/entext.html`)
...
}
并按如下方式使用:

source = require(language[en])

@Dmitry,我编辑了与var.tb一起使用的答案,但如果我不想要求所有文件,该怎么办。在一种情况下,我需要entext.html,但在另一种情况下,我需要pttext.html。我不想存储将来可能需要的所有文件。我想在构建之前添加所有必要的文件,并在代码@Meysam-IzadmehrIf中通过前缀要求它们。如果用户可以在应用程序中更改语言,则无需其他方式。如果用户无法更改语言,并且text.html不是一个小文件,请为每种语言创建一个版本。如果你不想要求所有的文件,也许你不应该首先使用它。例如,当用户想要更改语言时,您可以从服务器获取它。@Dmitry,我编辑了用于var.tb的答案,但如果我不需要所有文件,该怎么办。在一种情况下,我需要entext.html,但在另一种情况下,我需要pttext.html。我不想存储将来可能需要的所有文件。我想在构建之前添加所有必要的文件,并在代码@Meysam-IzadmehrIf中通过前缀要求它们。如果用户可以在应用程序中更改语言,则无需其他方式。如果用户无法更改语言,并且text.html不是一个小文件,请为每种语言创建一个版本。如果你不想要求所有的文件,也许你不应该首先使用它。例如,当用户想要更改语言时,您可以从服务器获取它。