Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React-Native-如何替换React-Native核心组件的功能_Javascript_Reactjs_React Native_React Native Ios - Fatal编程技术网

Javascript React-Native-如何替换React-Native核心组件的功能

Javascript React-Native-如何替换React-Native核心组件的功能,javascript,reactjs,react-native,react-native-ios,Javascript,Reactjs,React Native,React Native Ios,我已经创建了一个web应用程序,需要将其转换为react本机ios应用程序。 我已经为web应用程序创建了一个TextInput小部件,它比react原生TextInput组件做的更多 如何覆盖TextInput的核心功能,例如onchange方法 如何向TextInput添加额外功能 web应用程序的TextInput小部件是用JavaScript编写的。如果可能的话,我想避开objective-C 谢谢。如果我理解正确,您在这里不需要做任何特定的事情。您只需使用标准react技术向现有组件添

我已经创建了一个web应用程序,需要将其转换为react本机ios应用程序。 我已经为web应用程序创建了一个TextInput小部件,它比react原生TextInput组件做的更多

  • 如何覆盖TextInput的核心功能,例如onchange方法

  • 如何向TextInput添加额外功能

  • web应用程序的TextInput小部件是用JavaScript编写的。如果可能的话,我想避开objective-C


    谢谢。

    如果我理解正确,您在这里不需要做任何特定的事情。您只需使用标准react技术向现有组件添加功能。因此,您可以创建一个封装TextInput的组件,它允许您传递任何支持TextInput接受的想法。您还可以为组件提供额外的道具以满足其他需求

    import * as React from 'react';
    import { 
      TextInput
    } from 'react-native';
    
    class CustomInput extends React.Component {
    
      constructor(props) {
        this.state = {text: 'default text'}
      }
    
      render(): JSX.Element {
    
        return (
          <TextInput
            {...this.props} // pass through props
            value={this.state.text}
            onChangeText={this.onChangeText} // update value as usual
            onChange={this.props.doSomethingSpecial} // call custom prop function for custom behaviour
          />
        ); 
      }
    
      onChangeText = (text) => {
        this.setState({text});
      }
    }
    
    export default CustomInput;
    
    import*as React from'React';
    导入{
    文本输入框
    }从“反应本机”;
    类CustomInput扩展了React.Component{
    建造师(道具){
    this.state={text:'default text'}
    }
    render():JSX.Element{
    返回(
    ); 
    }
    onChangeText=(文本)=>{
    this.setState({text});
    }
    }
    导出默认自定义输入;
    
    我真的不明白如何覆盖onChange,因为它只是一个回调函数,不做任何事情。您喜欢更改或做什么?更改onChange只是许多场景中的一种。我需要知道我是否可以覆盖或更改TextInput采用的参数的功能。谢谢。你不应该(也可能不能)覆盖核心功能。一个简单的组件装饰器不适合你吗?