通过在内部调用 navigation.navigate() 创建共享组件 - React Native
Make shared component with calling navigation.navigate() inside - React Native
我想在 React Native 中为所有屏幕创建共享组件。所以我可以在主要组件之间共享它们。
查看下面的代码,一切正常,但 this.props.navigation.navigation.navigate('HireJob')
不工作。
我的代码:
export default class MyComponent extends Component {
callAndPush = () =>{
console.log('callAndPush');
this.props.navigation.navigate('HireJob')
}
render() {
return (
<TouchableHighlight style = {{backgroundColor : 'red' , height : 30}} onPress = {() => this.callAndPush()}>
<Text>Apple</Text>
</TouchableHighlight>
);
}
}
组件的使用:
render(){
return (
<View style = {styles.scrollSty}>
<MyComponent></MyComponent>
</View>
);
}
}
每个组件都可以导入到其他组件中,例如导航器。他们导入您的场景并通过共享道具在它们之间导航。
要制作一个组件并在不同的地方使用它,只需创建一个:
export default class MyComponent extends React.Component {
render() {
return (
<Text> This is a special component </Text>
);
}
}
在你的另一个 类 中这样使用它:
import MyComponent from '../path/to/MyComponent';
class AnotherComponent extends React.Component {
render() {
return (
<MyComponent />
);
}
}
从 React 0.14 开始,您可以使用 stateless components 更轻松地创建这些:
// A functional component using an ES2015 (ES6) arrow function:
const MyComponent = (props) => {
return <Text> This is a special component </Text>
};
如果您愿意,可以使用 props 传递数据。
它是这样工作的,绕过 navigation prop
进入 MyComponent
。
<MyComponent {...this.props} />
我想在 React Native 中为所有屏幕创建共享组件。所以我可以在主要组件之间共享它们。
查看下面的代码,一切正常,但 this.props.navigation.navigation.navigate('HireJob')
不工作。
我的代码:
export default class MyComponent extends Component {
callAndPush = () =>{
console.log('callAndPush');
this.props.navigation.navigate('HireJob')
}
render() {
return (
<TouchableHighlight style = {{backgroundColor : 'red' , height : 30}} onPress = {() => this.callAndPush()}>
<Text>Apple</Text>
</TouchableHighlight>
);
}
}
组件的使用:
render(){
return (
<View style = {styles.scrollSty}>
<MyComponent></MyComponent>
</View>
);
}
}
每个组件都可以导入到其他组件中,例如导航器。他们导入您的场景并通过共享道具在它们之间导航。
要制作一个组件并在不同的地方使用它,只需创建一个:
export default class MyComponent extends React.Component {
render() {
return (
<Text> This is a special component </Text>
);
}
}
在你的另一个 类 中这样使用它:
import MyComponent from '../path/to/MyComponent';
class AnotherComponent extends React.Component {
render() {
return (
<MyComponent />
);
}
}
从 React 0.14 开始,您可以使用 stateless components 更轻松地创建这些:
// A functional component using an ES2015 (ES6) arrow function:
const MyComponent = (props) => {
return <Text> This is a special component </Text>
};
如果您愿意,可以使用 props 传递数据。
它是这样工作的,绕过 navigation prop
进入 MyComponent
。
<MyComponent {...this.props} />