zoukankan      html  css  js  c++  java
  • 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)) //打印日志
    }
    

    • 正常获取到数据:
  • 相关阅读:
    PyTorch学习笔记之Variable_and_function_cat
    PyTorch学习笔记之DataLoaders
    PyTorch学习笔记之nn的简单实例
    PyTorch学习笔记之Tensors 2
    PyTorch学习笔记之Tensors
    webdriver定位元素
    Python面向对象、继承和多态
    python中json文件处理涉及的四个函数json.dumps()和json.loads()、json.dump()和json.load()的区分
    Python定义类时为什么要继承object类
    Python数据类型
  • 原文地址:https://www.cnblogs.com/hefeifei/p/11857323.html
Copyright © 2011-2022 走看看