• MVVM 框架 -- Redux 添加表单


    Redux 添加表单

    上一个博客已经展示了对应的数据,参考 Redux 快速入门,这一节会用一个表单添加数据。

    1、在components下新建PostFrom.js

    • 添加内容,以及对应的constructor
    • 想要展示,就要引入到App.js,并在div里使用
    查看代码
      
    //PostFrom.js
    import React, {Component} from 'react';
    

    class PostForm extends Component {
    constructor(props){
    super(props);
    this.state = {

        }
    }
    render() {
        return (
             <div>
                <h1> 添加内容</h1>
             </div>
        );
    }
    

    }

    export default PostForm;

    //App.js
    ······
    import PostForm from "./components/PostForm";
    ······
    <div>
    <PostForm/> {/*使用 /}
    <Posts/> {/
    使用 */}
    </div>

    2、回到PostForm.js代码,写表单

    • div 里面添加 form 标签,添加事件,onSubmit 方法
    • 继续在 form 里面添加div,写 2 个 label,1 个 button
    • 绑定对应状态,绑定事件,绑定 value
    • 给事件绑定this
    • 写刚刚添加的方法
    查看代码
      
    import React, {Component} from 'react';
    

    class PostForm extends Component {
    constructor(props){
    super(props);
    this.state = {
    //绑定对应状态
    title:"",
    body:""
    }
    //绑定this
    this.onChange = this.onChange.bind(this);
    this.onSubmit = this.onSubmit.bind(this);
    }

    //方法
    onChange(e){
        //方法里面空着的话,浏览器页面不能写入数据
        this.setState({ [e.target.name]:e.target.value});
    }
    
    onSubmit(e){
    
    }
    
    render() {
        return (
            &lt;div&gt;
                &lt;h1&gt;添加内容&lt;/h1&gt;
                &lt;form onSubmit={this.onSubmit}&gt;
                    &lt;div&gt;
                        &lt;label&gt;title &lt;/label&gt; &lt;br/&gt;
                        &lt;input type="text" name="title"
                               onChange={this.onChange}
                               value={this.state.title}/&gt;
                               {/*绑定事件、value*/}
                    &lt;/div&gt;
                    &lt;div&gt;
                        &lt;label&gt;body&lt;/label&gt;&lt;br/&gt;
                        &lt;textarea name="body"
                                  value={this.state.body}
                                  onChange={this.onChange}&gt;
                         &lt;/textarea&gt;
                     &lt;/div&gt; &lt;br/&gt;
                     &lt;button type="submit"&gt;添加 &lt;/button&gt;
                 &lt;/form&gt;
             &lt;/div&gt;
        );
    }
    

    }

    export default PostForm;

    3、

    • 写 onSubmit 这部分
    • 请求数据,并把表单中输入的内容放到数据里面去
    查看代码
      
    onSubmit(e){
            e.preventDefault(); //阻止默认事件
    
        const post = { //拿到状态
            title:this.state.title,
            body:this.state.body
        };
    
        fetch("http://jsonplaceholder.typicode.com/posts",{
            method:"POST",
            headers:{
                "content-type":"application/json"
            },
            body:JSON.stringify(post)
        })
            .then(res =&gt; res.json()) //成功的话,返回数据,并进行json解析
            .then(data =&gt; console.log(data)) //打印日志
    }
    

    • 正常获取到数据:
  • 相关阅读:
    Dijkstra-leetcode 743.网络延迟时间
    BFS-leetcode787 K站中转内最便宜的航班
    图论基础——单源最短路径问题
    DFS leetcode-547 朋友圈
    SpringBoot 使用注解向容器中注册Bean的方法总结
    SpringBoot对SpringMVC的支持
    数据源简介
    Spring MVC简介
    2020-2-10 Python 列表切片陷阱:引用、复制与深复制
    2020-2-2 语法糖
  • 原文地址:https://www.cnblogs.com/hefeifei/p/11857323.html
Copyright © 2020-2023  润新知