为什么React props 的默认值会是 true ?

const App = ({todos, actions}) => (
  <div>
    <Header addTodo={actions.addTodo} aaa/>
    <MainSection todos={todos} actions={actions} />
  </div>
)

这是父组件,里面有个Header是自定义组件,其中有个自定义属性是aaa.

这个aaa是我随手写的,也未在其他地方声明过。

然后我在Header里面,console.logaaa,为啥是个true?

clipboard.png



export default class Header extends Component {
  static propTypes = {
    addTodo: PropTypes.func.isRequired
  }

 

  render() {
    console.log(this.props)//值为Object {aaa: true}
    return (
      <header className="header">
        <h1>todos</h1>
        <TodoTextInput newTodo
                       
                       placeholder="What needs to be done?" />
      </header>
    )
  }
}
阅读 3.8k
3 个回答

html5中,布尔属性可以缩写,你的写法相当于

<Header addTodo={actions.addTodo} aaa={true}/>

类似在表单中

// 普通写法
<input type="checkbox" checked="checked">

// html5写法
<input type="checkbox" checked>

打印出来没有addTodo属性吗

新手上路,请多包涵

同问,所以缩写的都是布尔属性?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题