如何从react-native-numeric-input获得价值

时间:2019-02-28 14:48:43

标签: react-native

我是新来的本地人。我正在使用此软件包https://www.npmjs.com/package/react-native-numeric-input

我的问题是如何将值传递到下一页。

通过使用此代码:

XlFileFormat.xlCSVUTF8

如何获得结果?有人可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

首先,您需要为数字输入的变化值设置状态。 请尝试执行以下操作:

...
  constructor(props) {
    super(props);
    this.state = {
      numericInputValue: ''
    }
  }
  onChangeNumericInputValue = (value) => {
    this.setState({ numericInputValue: value });
  }

  render() {
  ...
    <NumericInput type='up-down' onChange={this.onChangeNumericInputValue} />
  ...
  }
...

下一步是将numericInputValue传递到下一页。 如果您使用反应导航在场景之间导航,则可以执行以下操作:

this.props.navigation.navigate('SceneName', { numericInputValue: this.state.numericInputValue })

答案 1 :(得分:1)

您的增减值成功通过了下一页,但是您没有通过正确的状态,您必须在第二个活动中通过数字状态

Send_Data_Function = () => {
    this.props.navigation.navigate("Second", { no: this.state.number });
  };

并通过1 = {this.props.navigation.state.params.no}代码成功读取。

您的主要问题是,当您按增大或减小按钮时,这些按钮中间的值不会正确改变吗?

这是您的解决方案。

初始化数字状态时,请勿分配字符串值。请使用数字

而不是字符串初始化数字状态

您的代码:

constructor(props) {
            super(props)
            this.state = {number: ''}
          }

更改:

constructor(props) {
                super(props)
                this.state = {number: 0}//<-------------
              }

下一个更改是您可能忘记了为NumericInput组件分配初始值,这就是为什么它不会向您显示任何状态更改的原因。同样在这里,您使用了错误的状态来分配值和显示值。您具有已初始化的数字状态,并使用值状态来分配值。 这是您的解决方案。

您的代码:

<NumericInput 
 value={this.state.value}//<----mistake---
 onChange={value => this.setState({number : value})}/>

解决方案:

<NumericInput
 initValue={this.state.number}//<---Add---
 value={this.state.number}//<----changes---
 onChange={value => this.setState({number: value })}/>

答案 2 :(得分:1)

在您的第二个活动中尝试 ->

 class SecondActivity extends Component{
         static navigationOptions =
            {
                title: "Second Activity"
            };

         constructor(props){
             super(props);
             this.state={
        numericInputValue:props.navigation.getParam("no",null)
                 }
               }


    render() {
            return (
            <View style= {styles.MainContainer}>
                <Text style={styles.textStyle}>
                1 = {this.state.numericInputValue}
                </Text>
            </View>
            )}
    }