React native React Native-如何在组件中的多个渲染元素上循环?

React native React Native-如何在组件中的多个渲染元素上循环?,react-native,React Native,我需要在组件中呈现的多个输入元素上循环,并验证它们不是空的。据我所知,React Native中没有“Document.getElementsByClass”,所以我不知道如何获取它们,请参阅下面的代码 const CreateAccountFormA = props => { verifyFormIsCompleted = props => { } return ( <Layout style={styles.mainContainer}>

我需要在组件中呈现的多个输入元素上循环,并验证它们不是空的。据我所知,React Native中没有“Document.getElementsByClass”,所以我不知道如何获取它们,请参阅下面的代码

const CreateAccountFormA = props => {

verifyFormIsCompleted = props => {

}


return (
    <Layout style={styles.mainContainer}>
        <Layout style={styles.inputsContainer}>
            <Input
            placeholder="Company"
            ></Input>
            <Input
            placeholder="First Name"
            ></Input>
            <Input
            placeholder="Last Name"
            ></Input>
            <Input
            placeholder="Address"
            ></Input>
            <Layout style={styles.parent}>
                <Input 
                style={styles.child}
                placeholder="City"
                ></Input>
                <Input
                style={{...styles.child, ...styles.centerChild}}
                placeholder="State"
                ></Input>
                <Input
                style={styles.child}
                placeholder="Zip"
                ></Input>
            </Layout>
        </Layout>
        <Layout style={styles.btnContainer}>
            <Button 
            onPress={verifyFormIsCompleted}
            >NEXT
          </Button>
        </Layout>
    </Layout>
)
const CreateAccountFormA=props=>{
verifyFormIsCompleted=道具=>{
}
返回(
下一个
)
}


任何帮助都将不胜感激,谢谢

有两种方法可以做到这一点,哑巴方法和正确的反应方法。 正如您所说,React Native中没有确切的
Document.getElementsByClass
,但是有ref。使用您的代码,您可以

{this.lastNameInput=ref)}>

您可以将所有引用存储在一个数组或某个对象中,通过查看ref.value来循环所有引用

现在,正确的反应方式是使用状态。在构造函数中声明
this.state={lastName:}
,然后将
onChangeText
属性添加到输入中

{this.setState({lastName}}}>

每当用户现在更改该输入中的值时,
this.state.lastName
也会更改。然后,您所要做的就是循环检查您的状态,例如执行以下操作

for(var field of this.state.keys()){
    if(this.state[field] === ""){
        //failed to validate
    }
}

react与普通的DOM/HTML有很大不同。使用react,您可以告诉渲染器要渲染什么,渲染器将其转换为HTML。您无权访问“节点”在react调用你的组件进行渲染时。你要做的是使用钩子来知道输入何时更改。阅读表单上的react文档可能会有所帮助:你是否尝试将TextInput与道具结合使用?@mahadev,我使用的是一个名为“UI Kitten”的样式化组件库,这就是为什么在我的代码中它们是“输入”的原因元素,而不是“TextInput”。文档中只说它们有一个名为“TextInputProps”的属性。我想我有点不知所措,但谢谢。