使用属性传递给组件

时间:2020-06-03 18:30:49

标签: react-native

我有一个用于绘制玩家资料的组件,我需要传入两个变量之一;男士或女士。

这只需导入组件并调用即可完成;

app.use(bodyParser.json())

它正在调用的组件已这样设置;

<PlayerProfiles typeOfProfile='Men'/>

我面临的挑战是,当要使用typeOfProfile值而不是在const PlayerProfiles = (typeOfProfile) => { const [isLoading, setLoading] = useState(true); const [data, setData] = useState([]); function playertype(val) { return 'https://s2.eu-west-1.amazonaws.com/xxxx.json';; } useEffect(() => { fetch(playertype(typeOfProfile)) .then((response) => response.json()) .then((json) => { setData(json) }) .catch((error) => console.error(error)) .finally(() => setLoading(false)); }, []); return ( <View style={styles.body}> <View style={styles.topscroll}> {isLoading ? <ActivityIndicator/> : ( <FlatList data={data.filter(data => data.Sex == 'Men')} 中使用硬编码的'Men'时,它不会将值读取为字符串。

我尝试使用JSON.stringify(typeOfProfile),但是它也返回属性的名称(typeOfProfile)。在剥离所有非值部分之前,我的问题是将值传递给typeOfProfile的最简单方法是什么?

1 个答案:

答案 0 :(得分:1)

typeOfProfile道具使用不正确。

const PlayerProfiles = (props) => {
  const typeOfProfile = props.typeOfProfile;
  const [isLoading, setLoading] = useState(true);
  const [data, setData] = useState([]);

或者您可以重组道具

const PlayerProfiles = ({ typeOfProfile }) => {
  const [isLoading, setLoading] = useState(true);
  const [data, setData] = useState([]);

请参见Components and Props