Python 3.x 如何在react js前端打印Django列表

Python 3.x 如何在react js前端打印Django列表,python-3.x,reactjs,django,django-rest-framework,django-react,Python 3.x,Reactjs,Django,Django Rest Framework,Django React,我的名单如下: ["test1","test2","test3","test4"] 我有以下序列化程序类: class ListSerializer(serializers.Serializer): key=serializers.ListField() 这是views.py文件: class ListView(APIView): def get(self, request,*args, **kw

我的名单如下:

["test1","test2","test3","test4"]
我有以下序列化程序类:

class ListSerializer(serializers.Serializer):
    key=serializers.ListField()
这是views.py文件:

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方法:

 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类代码

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>
)
}
类printForm扩展组件{
建造师(道具){
超级(道具);
这个州={
项目:[],
isLoaded:false,
关键字:“,
}
}
componentDidMount(){
this.setState({isLoding:true},()=>{
RestAPI.listForm()
。然后((响应)=>{
让关键字数组=[];
for(设i=0;i{
this.setState({isLoding:false});
handleServerErrors(错误,toast.error);
});
});
}
render(){
返回(
克拉斯胡斯托奥迪奥酒店
Dapibus ac设施处于关闭状态
莫比利奥·里索斯
交流门
{items.map(item=>{
返回
  • {items[0]}
  • ; })} ) }

    列表未打印。这里可能有什么错误?我尝试了许多方法,但都不起作用

    列表视图中
    返回带有列表的JSON(不需要序列化程序)

    def printList():
    返回[“test1”、“test2”、“test3”、“test4”]
    类列表视图(APIView):
    def get(自我、请求、*args、**kwargs):
    返回响应({“关键字”:printList()})
    
    在反应侧访问列表:

              let keywordArray = [];
              for (let i = 0; i < response.data["keywords].length; i++) {
                keywordArray.push({
                  text: response.data["keywords"][i],
                });
              }
    
    let关键字数组=[];
    for(设i=0;i
    正如您所见,您需要通过在
    response.data
    中设置“关键字”来访问列表


    下面是一个关于如何生成的好教程。

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

    def printList():
    返回[“test1”、“test2”、“test3”、“test4”]
    类列表视图(APIView):
    def get(自我、请求、*args、**kwargs):
    返回响应({“关键字”:printList()})
    
    在反应侧访问列表:

              let keywordArray = [];
              for (let i = 0; i < response.data["keywords].length; i++) {
                keywordArray.push({
                  text: response.data["keywords"][i],
                });
              }
    
    let关键字数组=[];
    for(设i=0;i
    正如您所见,您需要通过在
    response.data
    中设置“关键字”来访问列表

    下面是一个关于如何制作的好教程