美文网首页
3月12日日记:【WEBPACK】【REACT】

3月12日日记:【WEBPACK】【REACT】

作者: 钟志弘 | 来源:发表于2019-03-13 00:29 被阅读0次

关于webpack 遇到的问题

本次webpack配置一切顺利,需要注意的地方有两点:

  • 在使用babel-loader 的时候要将 node_modules目录剔除,否则会出现项目中载入css的时候出现css-loader 无法加载babel-preset-env 的现象:
{
  test: /\.js$/,
  exclude: /(node_modules)/,
  ...
}
  • 关于 alias 的运用, alias 在运用的时候,不需要字符串JSON,而且对象右边需要的是完全目录,下面是错误的:
"Utilities":"./Utilities/"

正确的是:

Utilities: path.resolve(__dirname, "Utilities/")

关于React

今天遇到的问题是:

  • 在父组件向子组件传递数据的时候,应把对象拆分而不是将整个对象传入,例如
...
<Color color={color} />
-----------------------------
const Color = ({ color }) => ... // wrong!

而应该是:

<Color {...color} />
const Color = ({ title , color, rating }) =>... // correct
  • 关于ref的问题, 如果使用函数形式写ref 应该在组件内定义对应变量,否则会出错。
    例如:
const AddColorPanel = ( { onAddColor }) =>{
  
  const submit = e => {
    e.preventDefault();
    onAddColor({ title: _title.value, color: _color.value});

    _title.value ="";
    _color.value ="";
  }

  return (
    <form onSubmit = {submit}>
      <input type="text" ref={(input) => _title = input} placeholder="color title..." />
      <input type="color" ref={(input) => _color = input} />
      <button type="submit">submit</button>
    </form>
  )
}

上面的是错误的,正确应该是:

const AddColorPanel = ( { onAddColor }) =>{
  let _title, _color;
  
  const submit = e => {
    e.preventDefault();
    // let {_title, _color} = this.refs  
    onAddColor({ title: _title.value, color: _color.value});

    _title.value ="";
    _color.value ="";
  }

  return (
    <form onSubmit = {submit}>
      <input type="text" ref={(input) => _title = input} placeholder="color title..." />
      <input type="color" ref={(input) => _color = input} />
      <button type="submit">submit</button>
    </form>
  )
}

或者以字符形式使用它。

相关文章

网友评论

      本文标题:3月12日日记:【WEBPACK】【REACT】

      本文链接:https://www.haomeiwen.com/subject/vprapqtx.html