【发布时间】:2021-01-14 11:47:06
【问题描述】:
我正在尝试将React Component 重写为带有钩子的功能组件。
我试图重写的组件是在这里找到的:
https://github.com/SHISME/react-native-draggable-grid#usage
按照使用示例,组件按预期工作,但转换组件后,<DraggableGrid 行出现错误,提示:
Invariant Violation: [335,"RCTView",{"height":"<<NaN>>"}] is not usable as a native method argument
到目前为止我做了什么:
const DraggableTest = (props) => {
const [items, setItems] = useState({
data: [
{name: '1', key: 'one'},
{name: '2', key: 'two'},
{name: '3', key: 'three'},
{name: '4', key: 'four'},
{name: '5', key: 'five'},
{name: '6', key: 'six'},
{name: '7', key: 'seven'},
{name: '8', key: 'eight'},
{name: '9', key: 'night'},
{name: '0', key: 'zero'},
],
});
const render_item = (item: {name: string, key: string}) => {
return (
<View style={styles.item} key={item.key}>
<Text style={styles.item_text}>{item.name}</Text>
</View>
);
};
return (
<View
style={{height: 100}}
style={{height: props.height}} // When trying parent nbr 2
>
<DraggableGrid
style={{height: 200}}
style={{height: props.height}} // When trying parent nbr 2
height={200}
numColumns={4}
renderItem={render_item}
data={items}
onDragRelease={(data) => {
setItems({data});
}}
/>
</View>
);
};
export default DraggableTest;
我试过的父母:
<DraggableTest style={{height: 200}} />
<DraggableTest height={200} />
我也不完全确定如何处理接口(如果需要?)。
关于height 错误,我遗漏了什么? DraggableGrid 是否以某种方式试图从包装组件中获取 height 值?是否存在尚未(尚未?)启动的 height 值?
祝你有美好的一天! :)
【问题讨论】:
标签: react-native react-hooks react-component