如何使用 react js/react native 中的函数发送 prop 值
How to send prop value using function in react js/react native
在我的应用程序中,我使用了一个 ErrorMessage 组件,它负责在文本中用不同颜色的不同消息显示错误消息。
import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';
export default class ErrorMessage extends Component {
constructor(props) {
super(props);
this.state = {
};
}
render() {
//console.log("props:",this.props);
//debugger;
return (
<View style={styles.form}>
<Text style={{color:this.props.color}}> {this.props.ErrorMessage} </Text>
</View>
);
}
}
const styles = StyleSheet.create({
form: {
},
});
我尝试在以下可能的情况下使用我的组件
<ErrorMessage ErrorMessage={()=>{getMessage()}} color={props.color} />
or
<ErrorMessage ErrorMessage={getMessage} color={props.color} />
or
<ErrorMessage ErrorMessage={getMessage()} color={props.color} />
我的 getMessage 函数如下所示
const getMessage = ()=> {
console.log("get message:state"+state)
if (state == 2) {
// error
return "Please enter valid user id";
}
if (state == 3) {
// warning
return "Please enter min 3 char";
} else {
// success
return "Valid user id";
}
};
但在所有情况下,应用程序都会抛出警告 "React Native – 警告:函数作为 React 子项无效。如果您 return 组件而不是渲染组件,则可能会发生这种情况. 或者您可能打算调用此函数而不是 return 它。"* 并且应用程序未执行 getMessage 函数体"*
请建议我们如何使用函数 return 数据将 prop 发送到组件。
重命名道具,并像这样称呼它
<ErrorMessage Message={getMessage()} color={props.color} />
在我的应用程序中,我使用了一个 ErrorMessage 组件,它负责在文本中用不同颜色的不同消息显示错误消息。
import React, { Component } from 'react';
import { View, Text, StyleSheet } from 'react-native';
export default class ErrorMessage extends Component {
constructor(props) {
super(props);
this.state = {
};
}
render() {
//console.log("props:",this.props);
//debugger;
return (
<View style={styles.form}>
<Text style={{color:this.props.color}}> {this.props.ErrorMessage} </Text>
</View>
);
}
}
const styles = StyleSheet.create({
form: {
},
});
我尝试在以下可能的情况下使用我的组件
<ErrorMessage ErrorMessage={()=>{getMessage()}} color={props.color} />
or
<ErrorMessage ErrorMessage={getMessage} color={props.color} />
or
<ErrorMessage ErrorMessage={getMessage()} color={props.color} />
我的 getMessage 函数如下所示
const getMessage = ()=> {
console.log("get message:state"+state)
if (state == 2) {
// error
return "Please enter valid user id";
}
if (state == 3) {
// warning
return "Please enter min 3 char";
} else {
// success
return "Valid user id";
}
};
但在所有情况下,应用程序都会抛出警告 "React Native – 警告:函数作为 React 子项无效。如果您 return 组件而不是渲染组件,则可能会发生这种情况. 或者您可能打算调用此函数而不是 return 它。"* 并且应用程序未执行 getMessage 函数体"*
请建议我们如何使用函数 return 数据将 prop 发送到组件。
重命名道具,并像这样称呼它
<ErrorMessage Message={getMessage()} color={props.color} />