首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在react js前端打印Django列表

如何在react js前端打印Django列表
EN

Stack Overflow用户
提问于 2020-11-06 22:15:45
回答 1查看 234关注 0票数 1

我有一份清单,如下:

代码语言:javascript
复制
["test1","test2","test3","test4"]

我有以下序列化程序类:

代码语言:javascript
复制
class ListSerializer(serializers.Serializer):
    key=serializers.ListField()

这是views.py文件:

代码语言:javascript
复制
class ListView(APIView):
    def get(self, request,*args, **kwargs):
        serializer_class = ListSerializer
        #print("The serializer is:",serializer_class)
        #print(printList())
        return Response({"keywords":printList()})

在前台下,我有以下API方法:

代码语言:javascript
复制
 static listFormUser() {
    const TOKEN = getItem("accessToken");
    return axios({
      method: "get",
      url: `${BASE_URL}/api/listtopics/`,
      headers: {
        "Content-Type": "application/json",
        Accept: "application/json",
        Authorization: `Token ${TOKEN}`,
      },
    }).then((res) => res);
  }
}

下面是用于显示列表的React类代码

代码语言:javascript
复制
class printForm extends Component {
  constructor(props){
    super(props);
    this.state={
      items:[],
      isLoaded:false,
      key:"",
    }
  }
componentDidMount(){
    this.setState({ isLoding: true }, () => {
      RestAPI.listForm()
        .then((response) => {
          let keywordArray = [];
          for (let i = 0; i <= response.data.length; i++) {
            keywordArray.push({
              text: response.data[i].key,
              
              
            });
          }
          if (response.data.length === 0) {
            this.setState({
              isData: false,
            });
          }
          this.setState({
            isLoding: false,
            items: keywordArray,
          });
        })
        .catch((error) => {
          this.setState({ isLoding: false });
          handleServerErrors(error, toast.error);
        });
    });
  }
render(){
   return(<ListGroup>
      <ListGroupItem>Cras justo odio</ListGroupItem>
      <ListGroupItem>Dapibus ac facilisis in</ListGroupItem>
      <ListGroupItem>Morbi leo risus</ListGroupItem>
      <ListGroupItem>Porta ac consectetur ac</ListGroupItem>
      <ListGroupItem>
      {items.map(item => {
              return <li>{items[0]}</li>;
            })}
      </ListGroupItem>
    </ListGroup>
)
}

列表不是printed.What可能是这里的错误?我试过很多方法,但都不管用。

EN

回答 1

Stack Overflow用户

发布于 2020-11-20 16:59:24

ListView中,您返回带有列表的JSON (不需要序列化程序)。

代码语言:javascript
复制
def printList():
    return ["test1","test2","test3","test4"]

class ListView(APIView):
    def get(self, request,*args, **kwargs):
        return Response({"keywords":printList()})

在React端访问列表:

代码语言:javascript
复制
          let keywordArray = [];
          for (let i = 0; i < response.data["keywords].length; i++) {
            keywordArray.push({
              text: response.data["keywords"][i],
            });
          }

如您所见,您需要通过在response.data中设置“关键字”来访问该列表。

这里有一个关于如何制作CRUD in Django+React的很好的教程。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64716238

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档