Как redux формирует передачу реквизита от HOC к элементу ввода

Я использую native-base (материальная библиотека пользовательского интерфейса для react-native) с формой redux для управления состоянием формы с помощью redux. Меня смущает следующий фрагмент кода. В приведенном ниже коде он принимает номер аргумента и передает его во входной тег с тройной точкой. но я не мог определить, что это такое и откуда он получает остальные свойства, и как я могу применять пользовательские реквизиты.

renderInput({ input, label,  meta: { touched, error, warning } }){
    console.info(input)
    var hasError= false;
    if (error !== undefined){
      hasError= true;

    }
    return( 

      <Item error= {hasError}>
        <Input {...input} 
        />
        {hasError ? <Text>{error}</Text> : <Text />}
      </Item>
    )
  }

Ниже приведен метод рендеринга, который вызывает указанную выше функцию из компонента поля высшего порядка редукционной формы.

render(){
     const { handleSubmit, reset } = this.props;
     if (!this.state.isReady) {
      return <Expo.AppLoading />;
    }
    return (
      <Container>
        <Header>
          <Body>
            <Title>Redux Form</Title>
          </Body>
        </Header>
        <Content padder>
          <Field name = "email" component = {this.renderInput} model = "sudhakar" type = "text" placeholder = "Username" />
          <Field name = "name" component = {this.renderInput} type = "password" placeholder = "Password" />
          <Input name = "age" type = "text" ref = "_age" />
          <Button block primary onPress= {this.handleLogin}
            style = {{marginHorizontal:10,backgroundColor:"#00adef", marginTop:50}}
          >
            <Text>Submit</Text>
          </Button>
        </Content>
      </Container>
    )
  }

Вы можете найти полный код здесь

Умерло ли Create-React-App?
Умерло ли Create-React-App?
В этом документальном фильме React.dev мы исследуем, мертв ли Create React App (CRA) и какое будущее ждет этот популярный фреймворк React.
Освоение React Native: Пошаговое руководство для начинающих
Освоение React Native: Пошаговое руководство для начинающих
React Native - это популярный фреймворк с открытым исходным кодом, используемый для разработки мобильных приложений. Он был разработан компанией...
В чем разница между react native и react ?
В чем разница между react native и react ?
React и React Native - два популярных фреймворка для создания пользовательских интерфейсов, но они предназначены для разных платформ. React - это...
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
От React к React Native: Руководство для начинающих по разработке мобильных приложений с использованием React
Если вы уже умеете работать с React, создание мобильных приложений для iOS и Android - это новое приключение, в котором вы сможете применить свои...
Хуки React: что это такое и как их использовать
Хуки React: что это такое и как их использовать
Хуки React - это мощная функция библиотеки React, которая позволяет разработчикам использовать состояние и другие возможности React без написания...
0
0
280
1

Ответы 1

Мне не разрешено оставлять комментарии, потому что моя репутация ниже 50.

Тройная точка называется оператор распространения, я думаю, это ключ к пониманию того, в чем вы запутались. когда я впервые увидел этот синтаксис, у меня было такое же замешательство. попробуйте прочитать ссылку выше плюс это, и я думаю, вы сможете понять проблему ур :)

Я также нахожу тот же ответ, но не могу понять, откуда renderInput получает входной параметр.

Sudhakar 30.05.2018 11:12

Я не уверен, что Field делает внутри, потому что я не вижу, что внутри Field, но я должен предположить, что когда поле принимает this.renderInput как один из его props с именем component, он передает входной параметр изнутри Field, рассматривая его как Перезвоните

Ray Jonathan 30.05.2018 11:22

т.е. внутри поля может быть написано что-то вроде this.props.component(<whatever it wanna pass to renderInput as parameters>)

Ray Jonathan 30.05.2018 11:23

Я нашел ответ, следуя видеоуроку.

Sudhakar 30.05.2018 12:32

Другие вопросы по теме