首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从无状态组件获取输入值

从无状态组件获取输入值
EN

Stack Overflow用户
提问于 2016-05-27 21:44:27
回答 1查看 2K关注 0票数 5

上下文

我试图从另一个无状态组件中获取输入字段的值,然后使用它调用一个方法。我在UI组件中使用rebass,并使用Meteor + Mantra进行此操作。

我知道,如果我使用的是<input>字段,而不是另一个无状态组件,我可以使用refs来实现这一点。

问题

我的当前代码生成未定义的preventDefault,删除后,console.log每次输入更改时打印出来,而不是在提交时打印出来。我相信我的状态适用于整个仪表板组件,而不是无状态<Input/>,但我不知道如何更改它。

代码语言:javascript
复制
import React from 'react';
import {PageHeader, Container, Input,Button} from 'rebass';

class Dashboard extends React.Component {
  constructor(props) {
    super(props);

    this.state = { websiteUrl: ''};
    this.onInputChange = this.onInputChange.bind(this);
    this.onFormSubmit = this.onFormSubmit.bind(this);
  }

  onInputChange(event) {
    this.setState({websiteUrl:event.target.value});    
  }

  onFormSubmit() {
    event.preventDefault;
    const {create} = this.props;
    const {websiteUrl} = this.state.websiteUrl;
    console.log(this.state.websiteUrl);
    create(websiteUrl);
  }    

  render() {
    const { error } = this.props;

    return (
      <div>

      <PageHeader
        description="Dashboard Page"
        heading="Dashboard"
      />

      <Container>
      <form>
            <Input
              value={this.state.websiteUrl}
              type="text"
              buttonLabel="Add Website"
              label="Website"
              name="add_website"
              onChange={this.onInputChange}    
            />

            <Button
              backgroundColor="primary"
              color="white"
              inverted={true}
              rounded={true}
              onClick={this.onFormSubmit()}
            > Add Website </Button>    
        </form>    
      </Container>
      </div>
    );
  }    
}

export default Dashboard;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-27 21:51:09

您应该将一个event传递给onFormSubmit函数:

代码语言:javascript
复制
    <Button
      backgroundColor="primary"
      color="white"
      inverted={true}
      rounded={true}
      onClick={(event) => this.onFormSubmit(event)}
      ...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37492674

复制
相关文章

相似问题

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