簡體   English   中英

React Native中的redux-form有問題

[英]something wrong with redux-form in React Native

所以我現在已經開了幾天了......

問題是我無法以React-native redux形式打印預填表格的當前值。

我已經嘗試了很多方法來簡單地打印出值,但它發現它們是“未定義的”就是這樣。

這是一些代碼。 這就是我顯示表單的方式:

  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}/>
    )
  }

}

我有點擔心上面的實現會搞亂redux架構,但到目前為止沒有找到確鑿的證據。

因此,正如我所說的,我無法以任何方式檢索當前值,並且console.log打印“>>> undefined”,盡管應用程序值已正確填充,甚至可以從props中正確檢索。

顯然,您可以通過調用Navigation onChange()(表單組件中的this.props.input.onChange())函數來觸發值建立。 它應該在componentwillmount()方法中調用(至少它可以幫助我,也許有更好的函數來調用)並且每次都有實際的變化。 這樣就形成了價值,可以正確選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM