【发布时间】:2021-04-21 22:01:48
【问题描述】:
您好,我正在尝试将 exportTest 导出到另一个 js 文件并重新渲染。我是这样试的
import React, { useState } from 'react';
import { StyleSheet, View } from 'react-native';
var n;
export var exportTest;
function foo()
{
//doing something and giving back n as 1 or 0
}
export default function App () {
const [test,setTest] = useState();
if(n == 0)
{
//doing something
setTest('n is zero')
}
else
{
//doing something
setTest('n is not zero')
}
exportTest=test
return(
<View>
...
...
...
</View>
);
}
我收到错误 too meny re-renders,因为我在 if 中执行 setTest
如何在if 的最后一行执行一次setTest? n 正在更改某些功能,我将其设为 1 或 0。
这就是我在另一个文件import {exportTest} from './App.js'; 中导入exportTest 的方式@
【问题讨论】:
-
嗯,
n始终为 0,所以它会一遍又一遍地重新渲染。递归没有基本情况,n始终为 0 或其他值,因此将调用setState。每次调用setState时,它都会触发一个新的渲染,所以你会想要达到一个没有调用setState的点。说了这么多,我不太确定这个组件应该做什么。 -
我想在
if结束时给setTest打电话
标签: javascript node.js reactjs react-native if-statement