使用MobX将输入绑定到React Dumb组件内的变量

时间:2018-06-11 13:24:42

标签: javascript reactjs mobx mobx-react

在学习使用MobX时,我想从string更新<input/>。 我知道在智能组件中我可以使用onChange={this.variable.bind(this)},但我不明白在以下情况下我该怎么做:

const dumbComponent = observer(({ prop }) => {

  // prop is an object
  // destruct1 is a string, destruct2 is an array
  const { destruct1, destruct2 } = prop;
  const list = destruct2.map((item, key) => (<li key={key} >{item}</li>));

  return (
    <div>
      <h1>title</h1>
      <h2>{destruct1}</h2>
      // Relevent part start
      <input classname="destruct" value={destruct1.bind(this)} />
      // Relevent part end
      <ul>{list}</ul>
    </div>
  );
});

export default TodoList;

我能以某种方式将输入值绑定到destruct吗? 显然,这段代码不起作用。但我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您可以创建内联箭头功能并像这样更改prop.destruct1

const dumbComponent = observer(({ prop }) => {
  const { destruct1, destruct2 } = prop;
  const list = destruct2.map((item, key) => <li key={key}>{item}</li>);

  return (
    <div>
      <h1>title</h1>
      <h2>{destruct1}</h2>
      <input
        classname="destruct"
        value={destruct1}
        onChange={e => prop.destruct1 = e.target.value}
      />
      <ul>{list}</ul>
    </div>
  );
});