我正在尝试创建登录表单,但出现了此错误。
export default function LoginScreen(props) {
const [Submit, setSubmit] = React.useState('')
const windowWidth = Dimensions.get('window').width
const windowHeight = Dimensions.get('window').height
const [valuePass, setValuePass] = React.useState('')
const [valueUsername, setValueUsername] = React.useState('')
const [secureTextEntry, setSecureTextEntry] = React.useState(true)
const toggleSecureEntry = () => {
setSecureTextEntry(!secureTextEntry)
}
const AlertIcon = (props) => <Icon {...props} name='alert-circle-outline' />
const renderIcon = (props) => (
<TouchableWithoutFeedback onPress={toggleSecureEntry}>
<Icon {...props} name={secureTextEntry ? 'eye-off' : 'eye'} />
</TouchableWithoutFeedback>
)
return (
<View>
<Text>Login</Text>
<Input
placeholder='Username'
value={valueUsername}
style={{ width: windowWidth - 50, borderRadius: 16 }}
onChangeText={(nextValue) => setValueUsername(nextValue)}
size='large'
/>
<View style={{ height: 15 }}></View>
<Input
style={{ width: windowWidth - 50, borderRadius: 16 }}
size='large'
value={valuePass}
placeholder='Password'
caption='Should contain at least 8 symbols'
accessoryRight={renderIcon}
captionIcon={AlertIcon}
secureTextEntry={secureTextEntry}
onChangeText={(nextValue) => setValuePass(nextValue)}
/>
<View style={{ marginTop: 25 }}>
<Button
style={{ borderRadius: 15 }}
onPress={setSubmit(true)}
size='large'
>
Submit
</Button>
</View>
</View>
)
}
任何人都可以解释为什么会发生此错误??
我是新来的反应原生。
忽略这个(只是为了加量)= =我得补充一些没用的句子因为StackOverflow给我< code > '看起来你的帖子大部分是代码;请再补充一些细节。(对这个stackoverflow错误感到非常沮丧)
对于Button的onPress道具,您应该传递一个函数,而不是直接传递一个实例。我的意思是这样的;
<Button onPress={() => setSubmit(true)} />
对执行相同操作
当安装组件时,会检查
onPress
,当您调用setSubmit
时,会在内部反复更改状态,但当您传递函数并在那里执行操作时,它会等待单击,因为当按下按钮时,
会调用回调函数。
问题出在你的新闻道具上
onPress={setSubmit(true)}
花括号之间的所有内容都会立即被计算。因此,setSubmit函数在每个渲染循环中都被调用。
通过使用箭头函数包装函数,计算的代码将生成一个函数,用户只要单击按钮,就可以调用该函数。
所以应该是
onPress={()=>{setSubmit(true)}}
当我试图设置状态,然后得到一个错误。错误:太多的重新渲染。React限制渲染的数量以防止无限循环。 我已经用
如何防止以下错误: 太多的重新渲染。React限制渲染的数量,以防止无限循环。' 我刚刚将一个基于类的组件更改为功能组件,但它不起作用 我的源代码 我只是将一个基于类的组件更改为功能组件,我得到了这些错误。 0个 如何防止以下错误: 太多的重新渲染。React限制渲染的数量,以防止无限循环。'
这是来自物料界面的模板。我从GitHub的注册中选择了这个模板,我只导入了useState并尝试使用它。 它抛出“太多的重新渲染。React限制渲染数量以防止无限循环材质”, 我尝试过使用反应钩子,因为我不能实现类。
我很困惑为什么Iam会出现这个错误:太多的重新呈现。React限制呈现次数以防止无限循环。当我尝试调用USESTAT保存checkBoxList数据时,就会发生这种情况。如果我注释掉行setListOptions(checkBoxList);错误消失了。我希望发生的是,setListoptions应该保存在本地,然后我可以调用listOptions来映射我的数据。谢谢你的协助。
我想建立一个组件 使用Axios将文件上传到API。 响应被存储并传递到另一个组件。 但使用下面的代码,我得到了太多的错误重新渲染和错误突出显示 组件的完整代码如下所示。我是一个比较新的反应者,3天多来一直在试图找出这个错误的根本原因,但没有任何帮助。我不知道我哪里出错了。
我在使用时遇到一个错误。即使加载页面是新鲜的,没有按下任何按钮,我的按钮onClick事件侦听器激活了,正如我之前在主题中提到的,我的错误: “错误:重新呈现太多。React限制呈现次数以防止无限循环。”