codecamp

Controlled Input 值为 null 的情况

为每个 controlled component 指定 value 属性,来防止用户修改输入除非你希望如此。

你也许会遇到这种问题:虽然已经指定了 value ,但是 input 依然可以未经允许就改变。这种情况,可能是因为一不小将 value 设置成了 undefined  null

下面这条代码片段展示了这个现象,一秒钟之后,文本变得可编辑了。

React.render(<input value="hi" />, mountNode);

setTimeout(function() {
  React.render(<input value={null} />, mountNode);
}, 1000);


子 props 的类型
Mounting 后 componentWillReceiveProps 未被触发
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }