【问题标题】:React Native - get value from horizontal pickerReact Native - 从水平选择器中获取价值
【发布时间】:2021-06-20 00:47:21
【问题描述】:

我想从这里使用水平选择器 (https://www.npmjs.com/package/@vseslav/react-native-horizontal-picker)

但是我怎样才能获得当前选择的值呢?

<HorizontalPicker
                data={this.getGameActivities()}
                renderItem={this.renderActivityItem}
                itemWidth={80}
                onChange={this.setState({selected: ???})}
                                />

我试图在 renderActivityItem (我知道它不好)函数中更新我的状态,但是出现了超出最大更新深度的错误。谁能帮助我如何获得选定的价值?

【问题讨论】:

  • 你的数据怎么样?
  • onChange={(position) =&gt; this.setState({selected: position})} position 是当前选定的项目索引(根据文档)。因此,您可以使用this.state.selected 获取值。 this.getGameActivities()[this.state.selected]是您当前选择的项目
  • Uğur Eren 非常感谢,我想不通!

标签: react-native mobile


【解决方案1】:

您可以使用 UseState 挂钩。 例如:

const [value, setValue] = useState(0);

<HorizontalPicker
  data={itemList}
  renderItem={renderItem}
  itemWidth={60}
  onChange={setValue}
  defaultIndex={0}
/>

【讨论】:

    【解决方案2】:

    您可以通过在 onChange 属性中传递参数来做到这一点

                    <HorizontalPicker
                    data={this.getGameActivities()}
                    renderItem={this.renderActivityItem}
                    itemWidth={80}
                    onChange={(selected) => this.setState({selected})} 
                    />
    

    【讨论】:

      【解决方案3】:

      你可以试试这样:

          <HorizontalPicker
                  data={this.getGameActivities()}
                  renderItem={this.renderActivityItem}
                  itemWidth={80}
                  onChange={(val) => this.functionName(val)}
                                  />
      
                 
      

      【讨论】:

        猜你喜欢
        • 2021-11-10
        • 1970-01-01
        • 1970-01-01
        • 2011-12-30
        • 1970-01-01
        • 2018-05-30
        • 1970-01-01
        • 2021-05-03
        • 2020-10-09
        相关资源
        最近更新 更多