我在React Native中使用的图像对图像源使用require语句。我想改变图像的来源,所以它有点像在动画中切换帧。
#include <cstdio>
using namespace std;
long *a;
int *dp;
int solve(int);
int main()
{
int n;
scanf("%d", &n);
a = new long[n];
dp = new int[n]{};
for (int i = 0; i < n; i++) scanf("%ld", a+i);
printf("%d", solve(n-1));
}
int solve(int n)
{
if (dp[n]) return dp[n];
int &m = dp[n] = 1, k;
for(int j = 0; j < n; j++)
if (((a[n] < 0 && a[j] > 0 && -a[n] > a[j]) || (a[n] > 0 && a[j] < 0 && a[n] > -a[j])))
if ((k = 1 + solve(j)) > m) m = k;
return m;
}
答案 0 :(得分:0)
要求两者,然后在您需要的地方使用正确的:
var hello = require('./hello');
var goodbye = require('./goodbye');
hello.myFunction();
// later:
goodbye.anotherFunction()
答案 1 :(得分:0)
我不认为这是一个很好的编程风格,但它是可能的。 例如,模块看起来像这样
exports.name = () => {
console.log('modul1')
}
像这样的主文件,它会像预期的那样工作
const modul1 = './modul1'
const modul2 = './modul2'
var modul = require(modul1)
modul.name() // -> modul1
modul = require(modul2)
modul.name() // -> modul2
答案 2 :(得分:0)
我最终只是创建了一个像这样的对象:
public static async Task<Scenario> Test()
{
return await new AsyncScenario();
}
public class AsyncScenario
{
public TaskAwaiter<Scenario> GetAwaiter()
{
return new TaskAwaiter<Scenario>();
}
}
在我的Image标记中,我将var frames = {
'1': require('./assets/phase1.png'),
'2': require('./assets/phase2.png'),
'3': require('./assets/phase3.png'),
'4': require('./assets/phase4.png'),
}
属性设置为source
,并使用this.state.frame
等帧中的新密钥设置setState。幸运的是我没有太多的图像,但这不是最理想的解决方案。
编辑: 另一种解决方案(更优雅,更简洁)是在android&gt; app&gt; src&gt; main&gt; res中创建一个可绘制文件夹并删除该文件夹中的所有图像。在iOS上,您可以删除ios&gt; Appname&gt; Images.xcassets。
中的所有图像从那里,您可以将图片来源设置为frames[imageIndex]
,其中{uri: this.state.imageFile}
是不带文件扩展名的字符串,您可以动态更改它们,而无需this.state.imageFile
每个文件。