我有一个用于绘制玩家资料的组件,我需要传入两个变量之一;男士或女士。
这只需导入组件并调用即可完成;
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的最简单方法是什么?
答案 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([]);