Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否可以在传递给组件的回调中指定所需的参数?_Javascript_Reactjs_React Proptypes - Fatal编程技术网

Javascript 是否可以在传递给组件的回调中指定所需的参数?

Javascript 是否可以在传递给组件的回调中指定所需的参数?,javascript,reactjs,react-proptypes,Javascript,Reactjs,React Proptypes,让我们假设一个组件: class MyComponent extends React.Component { // ... } MyComponent.propTypes = { name: React.PropTypes.string, onChange: React.PropTypes.func }; 如何判断调用onChange时可能使用的参数是什么 <MyComponent name="bar" onChange={(iDontKnowWhatsHere) =&g

让我们假设一个组件:

class MyComponent extends React.Component {
   // ...
}

MyComponent.propTypes = {
  name: React.PropTypes.string,
  onChange: React.PropTypes.func
};
如何判断调用onChange时可能使用的参数是什么

<MyComponent name="bar" onChange={(iDontKnowWhatsHere) => {}} />
{}/>

不太可能。函数可以接受任意数量的任意类型的参数。给定一个函数,您可能能够测试它期望的参数数量,但不能测试它期望的类型。换言之:即使您可以指定它,也无法对其进行测试。改为在
onChange
propType中添加注释。除此之外,函数参数描述不会阻止函数通过查看
参数来读取更多参数。您可能有兴趣尝试TypeScript,它允许您定义函数参数的类型,并会在编译时抱怨(typescript->javascript)如果它们不是预期的。你应该在函数体中测试你的参数。与react无关。如果你不想完全相信typescript,你可以尝试在react Native中也使用它。