如何更新父组件的非受控/只读输入值?

时间:2015-04-01 07:51:11

标签: reactjs react-jsx

我有一个简单的文本字段(<input type="text"/>)组件(子组件),它只应显示从其父组件获取的值。它是readonly,用户无法更改该值。

我的问题是文本字段使用正确的值呈现一次,但是一旦父组件中的值发生更改,它就不会自动更新。虽然每次父组件更改其render时都会调用state方法,但该值保持不变(请检查您的控制台)。

这是展示我问题的jsfiddle

任何想法如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

您应该使用value道具代替defaultValueHere's an updated jsfiddle.

答案 1 :(得分:0)

defaultValue仅用于初始渲染。 (来源:https://github.com/facebook/react/issues/2764#issuecomment-67890726

如果您将defaultValue替换为value,则可以使用http://jsfiddle.net/hnc7fobu/1/

(没关系,因为你有readOnly属性,你不会得到这个警告: propType失败:您向没有value处理程序的表单字段提供了onChange道具。这将呈现一个只读字段。如果该字段应该是可变的,请使用defaultValue。否则,请设置onChangereadOnly。)