传递ref作为函数参数React Native

布林托

在当前代码中,我使用ref来更改方法TextInput中使用函数的组件样式setNativeProps

class RegisterScreen extends Component {
    constructor(props) {
        super (props)
        this.state = {
            borderBottomStyle: '#f7f7f7'
        }
    }

    focusedInput = () => { 
        this.textInput.setNativeProps({
            style: { borderBottomColor: '#445AE3' }
        }) 
    }
    
    blurredInput = () => { 
        this.textInput.setNativeProps({
            style: { borderBottomColor: '#f7f7f7' }
        }) 
    }

    render() {
        return (
            <View style={styles.container} >
               <View style={styles.form}>
                    <TextInput
                        ref={c => { this.textInput = c}} 
                        style={styles.textInput}
                        onFocus={this.focusedInput}
                        onBlur={this.blurredInput}
                        style={[styles.formInput, { borderBottomColor: this.state.borderBottomStyle }]}
                        placeholder={"Email"}
                    />
                    <TextInput
                        style={[styles.formInput, { borderBottomColor: this.state.borderBottomStyle }]}
                        placeholder={"Password"}
                    />
               </View>
            </View>
        )
    }
}

export default RegisterScreen

它与我的第一个兼容,TextInput正在寻找一种方法来对第二个做相同的事情。我首先想到将ref传递给focusedInputandblurredInput函数作为参数,以指定要修改的元素,但是我对ref不太熟悉。

有办法实现吗?

谢谢你的帮助

新开发者

如果我正确理解了您的问题,则希望根据是否关注焦点有条件地更改文本框的UI。

您可以只使用一种状态来保留currentFocused textInput名称,并根据currentFocused框有条件地更改文本框的UI。

我在沙盒上做了一个快速演示。请看下面的链接。

演示沙箱链接

import React, { Component } from "react";
import { View, TextInput } from "react-native";

class RegisterScreen extends Component {
  constructor(props) {
    super(props);
    this.state = {
      borderBottomStyle: "#f7f7f7",
      currentlyFocused: null
    };
  }

  focusedInput = () => {
    this.textInput.setNativeProps({
      style: { borderBottomColor: "#445AE3" }
    });
  };

  blurredInput = () => {
    this.textInput.setNativeProps({
      style: { borderBottomColor: "#f7f7f7" }
    });
  };

  render() {
    return (
      <View style={{ flex: 1 }}>
        <View>
          <TextInput
            style={{
              borderBottomColor:
                this.state.currentlyFocused === "email" ? "red" : "grey",
              borderStyle: "solid",
              borderWidth: this.state.currentlyFocused === "email" ? 3 : 0,
              height: 50,
              marginTop: 20
            }}
            onFocus={() => this.setState({ currentlyFocused: "email" })}
            onBlur={() => this.setState({ currentlyFocused: "" })}
            placeholder={"Email"}
          />
          <TextInput
            style={{
              borderBottomColor:
                this.state.currentlyFocused === "password" ? "red" : "grey",
              borderStyle: "solid",
              borderWidth: this.state.currentlyFocused === "password" ? 3 : 0,
              height: 50,
              marginTop: 20
            }}
            onFocus={() => this.setState({ currentlyFocused: "password" })}
            onBlur={() => this.setState({ currentlyFocused: "" })}
            placeholder={"Password"}
          />
        </View>
      </View>
    );
  }
}

export default RegisterScreen;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

React Native:将字符串作为函数传递

来自分类Dev

在 react-native-boilerplate 中传递函数参数

来自分类Dev

函数作为React子React Native无效

来自分类Dev

在React Native中将参数传递给组件

来自分类Dev

传递参数以路由React native

来自分类Dev

通过 React Native 函数传递 promise

来自分类Dev

如何在React Native Function组件内传递函数的参数?

来自分类Dev

React Native:从对象数组传递特定对象作为道具

来自分类Dev

React Native - 将类作为道具传递给组件

来自分类Dev

在React和React Native中的组件之间传递函数

来自分类Dev

Javascript-CreateStore-仅将多个函数传递为一个参数-Redux-React Native

来自分类Dev

如何使用React Native传递子屏幕的参数?

来自分类Dev

如何在React Native中的DateTimePicker上传递参数?

来自分类Dev

传递参数时超出 React Native 最大调用堆栈

来自分类Dev

React-Native:将TextInput的值传递给函数

来自分类Dev

react-native import(?)函数参数太奇怪了

来自分类Dev

传递更新状态React Native

来自分类Dev

React Native - Ref 似乎未定义

来自分类Dev

React Native 中的循环函数

来自分类Dev

React native undefined 不是函数

来自分类Dev

React Native - 同步运行函数

来自分类Dev

React Native 函数绑定(按钮)

来自分类Dev

如何在React-Native中通过React-Navigation多次传递参数?

来自分类Dev

将事件处理程序作为道具传递给 react-native 自定义组件

来自分类Dev

无法使用 React Native 中作为道具传递的值进行计算

来自分类Dev

传递匿名函数作为参数

来自分类Dev

Lambda函数作为参数传递

来自分类Dev

将函数作为参数传递

来自分类Dev

将函数作为参数传递

Related 相关文章

热门标签

归档