【问题标题】:Update Avatar value from Text feild从文本字段更新头像值
【发布时间】:2018-07-24 09:58:57
【问题描述】:

我对 React.JS 很陌生,对 JS 也很陌生。我必须从文本字段更新头像值。这只是一个小型演示项目。我的目标如下:

表示如果有人在

中输入了Text

昵称

然后必须更新头像文本。我在 App.js 中的渲染方法如下

 return (
      <div className="App">
                <div style={avatarParentContainer}>
                  <div style={divStyleAvatar}>
                  </div>
                  <span style={avatarContainer}>
                    {avatar}
                  </span> 
                </div>
                 <div>
                  <Login/>
                </div>     
      </div>
    );

下面是我的头像

avatar= <Avatar 
      name={this.setState({avatarname:''})} 
      size="200"  
      round={true} 
      style={avatarClass}
      />;

和上面的代码一样,我有一个单独的组件

登录

这个登录组件的昵称字段如下:

 <TextField
   hintText="Enter your Nick name"
   floatingLabelText="Nick Name"
   onChange = {(event,newValue)=>this.setState({nickname:newValue})}
   />

我知道这对于专家来说是个愚蠢的问题,但就我而言,我正在努力解决这个问题。请帮我解决这个问题。

【问题讨论】:

    标签: reactjs avatar


    【解决方案1】:

    将状态移动到您的 App 组件。 Avatar 和 Login 应该是无状态组件。然后您可以将函数作为道具传递给Login,并将name 从状态传递给Avatar 组件。像这样的东西(未测试,因为我没有这些组件的代码;)):

    const Login = ({ onChange }) => (
      <TextField
        hintText="Enter your Nick name"
        floatingLabelText="Nick Name"
        onChange = {(event, newValue) => onChange(newValue)}
      />
    );
    
    const Avatar = ({ name }) => (
      <Avatar 
        name={name} 
        size="200"  
        round={true} 
        style={avatarClass}
      />
    );
    

    在App:

    return (
      <div className="App">
        <div style={avatarParentContainer}>
          <div style={divStyleAvatar}>
            <span style={avatarContainer}>
              <Avatar name={this.state.avatarname} />
            </span> 
          </div>
        <div>
        <Login onChange={avatarname => this.setState({avatarname})} />   
      </div>
    );
    

    【讨论】:

    • 感谢您的回复。但是如何将文本字段值从 Login 组件传递给 App.js?
    • 好的,我明白了,我已经编辑了我的答案。让我知道你是否清楚。
    猜你喜欢
    • 2019-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    • 1970-01-01
    • 1970-01-01
    • 2018-07-13
    • 2013-02-19
    • 1970-01-01
    相关资源
    最近更新 更多