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])
我想使用 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])