Javascript 如何覆盖React本机组件?

Javascript 如何覆盖React本机组件?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,亲爱的朋友,我正在尝试覆盖react本机组件中的一个方法,请告诉我如何实现这一点 // BaseButton.js import React, { Component } from 'react' import { View, Button } from 'react-native' export default class BaseButton extends Component { onPress = () => { console.log('Test')

亲爱的朋友,我正在尝试覆盖react本机组件中的一个方法,请告诉我如何实现这一点

// BaseButton.js
import React, { Component } from 'react'
import { View, Button } from 'react-native'

export default class BaseButton extends Component {

    onPress = () => {
        console.log('Test')
    }
    
    render() {
        return (
            <View>
                <Button
                    title="Press me"
                    disabled
                    onPress={() => this.onPress()}
                />
            </View>
        )
    }
}
//BaseButton.js
从“React”导入React,{Component}
从“react native”导入{View,Button}
导出默认类BaseButton扩展组件{
onPress=()=>{
console.log('Test')
}
render(){
返回(
这是.onPress()}
/>
)
}
}
//HomeScreen.js
从“React”导入React,{Component}
从“./Components/BaseButton”导入BaseButton
BaseButton.prototype.onPress=()=>{
console.log('Overrided…');
}
导出默认类主屏幕扩展组件{
render(){
返回(
)
}
}

据我所知,没有所谓的组件覆盖。但若您想要自定义组件,那个么您可以使用另一个组件进行包装,您可以使用道具访问组件的默认功能,对于其他功能,您可以在包装器组件内创建自己的状态和道具

请参考以下链接了解react原生道具,
据我所知,没有所谓的组件覆盖。但若您想要自定义组件,那个么您可以使用另一个组件进行包装,您可以使用道具访问组件的默认功能,对于其他功能,您可以在包装器组件内创建自己的状态和道具

请参考以下链接了解react原生道具,

你只需借助道具就可以做到这一点

//BaseButton.js
从“React”导入React,{Component};
从“react native”导入{View,Button};
导出默认类BaseButton扩展组件{
onPress=()=>{
console.log('Test');
};
render(){
返回(
);
}
}
//HomeScreen.js
从“React”导入React,{Component};
从“./Components/BaseButton”导入BaseButton;
导出默认类主屏幕扩展组件{
render(){
返回(
{
console.log('Overrided…');
}}
/>
);
}
}

您只需使用道具即可完成

//BaseButton.js
从“React”导入React,{Component};
从“react native”导入{View,Button};
导出默认类BaseButton扩展组件{
onPress=()=>{
console.log('Test');
};
render(){
返回(
);
}
}
//HomeScreen.js
从“React”导入React,{Component};
从“./Components/BaseButton”导入BaseButton;
导出默认类主屏幕扩展组件{
render(){
返回(
{
console.log('Overrided…');
}}
/>
);
}
}

它在React中的工作原理并非如此。编写
BaseButton
并向其传递一个
onPress
处理程序。它在React中的工作方式并非如此。编写
BaseButton
并将
onPress
处理程序传递给它。
// HomeScreen.js
import React, { Component } from 'react'
import BaseButton from './Components/BaseButton'

BaseButton.prototype.onPress = () => {
    console.log('Overrided...');
}

export default class HomeScreen extends Component {
    render(){
        return(
            <BaseButton />
        )
    }
}