Reactjs React钩子:将钩子状态传递回父组件

Reactjs React钩子:将钩子状态传递回父组件,reactjs,react-native,state,react-hooks,Reactjs,React Native,State,React Hooks,我正在构建我的第一个React本地库,但它当然会带来一些问题。这是React Native的一个小选择器组件库(日期、时间、日期时间、列表、状态),但我需要一些关于如何执行下一步的指导 App.js(最终将成为一个NPM包,但使用App进行测试) 我想使用onValueChange以便用户在从NPM包导入组件时可以使用setState将状态设置到他们的屏幕上。到目前为止,它只是将值记录到控制台(但是没有正确地传递值,所以这不起作用)。这就是为什么我有onValueChange作为ListPick

我正在构建我的第一个React本地库,但它当然会带来一些问题。这是React Native的一个小选择器组件库(日期、时间、日期时间、列表、状态),但我需要一些关于如何执行下一步的指导

App.js(最终将成为一个NPM包,但使用App进行测试)

我想使用
onValueChange
以便用户在从NPM包导入组件时可以使用
setState
将状态设置到他们的屏幕上。到目前为止,它只是将值记录到控制台(但是没有正确地传递值,所以这不起作用)。这就是为什么我有
onValueChange
作为ListPicker组件的原因。我的问题将在ListPicker.js描述中进一步解释

// Imports: Dependencies
import React, { useState, useEffect } from 'react';

// Imports: Components
import { ListPicker } from './src/ListPicker';

// React Native App
export default App = () => {

  // Test Data
  const items = [
    { label: '1', value: '1' },
    { label: '2', value: '2' },
    { label: '3', value: '3' },
    { label: '4', value: '4' },
    { label: '5', value: '5' },
    { label: '6', value: '6' },
    { label: '7', value: '7' },
    { label: '8', value: '8' },
    { label: '9', value: '9' },
    { label: '10', value: '10' }
  ];

  return (    
    <ListPicker listName="List Test" items={items} onValueChange={(value) => console.log(`Value Updated: ${value}`)}/>
  );
};

对。只需调用
props.onValueChange
,将更改后的值放入
selectValue
方法中即可

  // Select Value
  selectValue = (value) => {
      // React Hook: Set Value
      setValue(value);

      // React Props: onValueChange
      props.onValueChange(value)
  };

顺便说一句,您不需要到处使用
try catch
:D

onValueChange
是一个函数,当您需要将新值传递给父组件时,根据您的代码需要调用该函数:

//在这里做点什么


只需
props.onValueChange(value)

谢谢!我有在所有函数中使用try/catch块的习惯。什么时候使用它们有经验法则吗?你可以看看这个。对我来说,我通常在向服务器发出请求或读取文件的方法中使用
try-catch
。。。
  // Select Value
  selectValue = (value) => {
      // React Hook: Set Value
      setValue(value);

      // React Props: onValueChange
      props.onValueChange(value)
  };