1
所以我一直在此上下车的夫妇现在天...有毛病终极版形式在本地做出反应
问题是,我不能够打印的当前值预填充以React本机还原形式存在。
我试过一堆方法来简单地打印出值,但它发现它们为“未定义”,那就是。
这是一些代码。 这是我的显示形式:
render(){
const {data} = this.props
return(
<View>
<ScrollView style={styles.container}>
<QuestionnaireItem title={Strings.en.fewWords}>
<Field name={"fewWords"}
component={TextInput}
style={styles.fewWords}
defaultValue={data.few_words}
multiline={true}/>
</QuestionnaireItem>
<!-- ... -->
这是如何实现的形式和尝试打印状态到道具映射:
let QuestionnaireFormRF = reduxForm({
form: 'QuestionnaireForm'
})(QuestionnaireFormComponent);
function mapStateToProps(state) {
const selector = formValueSelector('QuestionnaireForm')
const {
fewWords,
familyState,
kidsQuantity
} = selector(state, "fewWords", "familyState", "kidsQuantity")
console.log(">>> " + fewWords)
return {
fewWords,
familyState,
kidsQuantity
}
}
QuestionnaireFormRF = connect(mapStateToProps)(QuestionnaireFormRF)
export default QuestionnaireFormRF
而且,如果有帮助,这是怎么了这组件被调用。
const tabArray = [
{
title: Strings.en.questionnaire,
component: QuestionnaireForm,
props: {}
},
{
title: Strings.en.questionnaireForPartner,
component: QuestionnaireForPartnerForm,
props: {}
}
]
export default class QuestionnaireScreen extends Component {
constructor(props){
super(props)
}
componentWillMount(){
tabArray[0].props = { data: this.props.data, navigator: this.props.navigator }
tabArray[1].props = { data: this.props.data, navigator: this.props.navigator}
}
render(){
return(
<TopTabsMulti tabs={tabArray} openTab={0}/>
)
}
}
我有点担心上面的实现可能会搞乱REDX架构,但是到目前为止还没有发现可靠的证据。
因此,正如我所说的,我无法以任何方式检索当前值,并且console.log会打印“>>> undefined”,尽管应用程序值已正确填充,甚至可以从道具中正确检索。
这些预填充值来自哪里?感觉好像可能会丢失一些代码,因为从那里你有什么,选择器将始终返回空,直到你填写组件本身的值。 –
值从父组件传递下来,然后由redux管理它们。实施是根据wix导航解决方案:react-native-navigation。 即使值正在调节,选择器实际上也会返回空值。比如你键入一些东西并重新渲染 – Medardas