我从雀巢对象获取价值时遇到问题。我想从studySets中获取值名称(这是对象用户中的嵌套对象)。该程序知道它是一个对象,但无法显示值(显示两个点,因为在数据库中,它是两个用户对象)。我在响应中添加了屏幕截图。请告诉我问题出在哪里。
WordSet.js
export class WordSet extends React.Component {
constructor(props) {
super(props);
this.state = {
users: [],
};
}
componentDidMount() {
fetch(URL)
.then((response) => response.json())
.then((json) => {
this.setState({ users: json });
});
}
render() {
const { users } = this.state;
return (
<div>
<ul>
{users.map((user) => (
<li key={user.id}>{user.studySets.name}</li>
))}
</ul>
</div>
);
}
}
export default WordSet;
答案 0 :(得分:0)
好吧,基本上,您将studySets视为对象,而是一个数组。因此,或者您也必须遍历studySets数组,或者如果您始终想要第一个用户的数据,然后执行我在评论中提到的类似操作:
func ParseStruct(t reflect.Type, tag string) {
if t.Kind() == reflect.Ptr {
t = t.Elm()
}
if t.Kind() != reflect.Struct {
return
}
for i := 0; i < t.NumField(); i++ {
f := t.Field(i)
value := f.Tag.Get(tag)
ft := t.Type
if ft.Kind() == reflect.Ptr {
ft = ft.Elem()
}
// It seems that you don't want a tag from an struct field; only other fields' tags are needed
if ft.Kind() != reflect.Struct {
if len(value) != 0 {
fmt.Println(value)
}
continue
}
ParseStruct(ft,tag)
}
}
在
中{user.studySets[0].name}