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

React Native: how to use require(path) with dynamic urls?

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

这里有一个例子:

return (
            <WebView
                    style={styles.container}
                    source={source}
                    scalesPageToFit={Boolean(true)}
                    onNavigationStateChange={this._onNavigationStateChange} />
    )

对于 source 变量,我需要有两个不同的值:

1) 对于 android 平台我需要使用这样的东西:

source = {uri: `file:///android_asset/contents/${languageId}text.html`}

2) 对于 ios 我需要使用 smth。像这样:

source = require(`../srv/localization/contents/${languageId}text.html`)

对于android它工作得很好,但是对于ios它不起作用。 这个 url 也适用于 iOS

require(`../srv/localization/contents/entext.html`)

据我了解,这是因为动态 url (${languageId}text.html)

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

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

var language = {
   en: require(`../srv/localization/contents/entext.html`)
   ...
}

并按如下方式使用它:

source = require(language[en])