React native React.forwardRef存在问题。null不是对象(计算';ref.current.focus';)
我有一个包含listHeaderComponent和listFooterComponent的平面列表。在用户添加listItem之后,我需要将焦点放在ListFooter组件上React native React.forwardRef存在问题。null不是对象(计算';ref.current.focus';),react-native,flatlist,forward-reference,React Native,Flatlist,Forward Reference,我有一个包含listHeaderComponent和listFooterComponent的平面列表。在用户添加listItem之后,我需要将焦点放在ListFooter组件上 <StyledList data={data} keyExtractor={item => item.name} renderItem={({item, index}) => { console.log('index: ' + index);
<StyledList
data={data}
keyExtractor={item => item.name}
renderItem={({item, index}) => {
console.log('index: ' + index);
return <FlowerListItem item={item} />;
}}
ListHeaderComponent={() => {
if (isFlowerList) {
return (
<DiaryFlowerHeader
onPress={onPress}
goBack={goBack}
focusNext={focusNext}
/>
);
}
}}
ListFooterComponent={() => {
if (isFlowerList) {
return <DiaryFlowerFooter ref={reference} data={data} />;
}
}}
/>
item.name}
renderItem={({item,index})=>{
console.log('索引:'+索引);
返回;
}}
ListHeaderComponent={()=>{
如果(iSpoorlist){
返回(
);
}
}}
ListFooterComponent={()=>{
如果(iSpoorlist){
返回;
}
}}
/>
在页脚上,我创建了这个forwardRef,以便稍后提供焦点
const NextButton = React.forwardRef((props, ref) => (
<Button
title="next"
hasBackgroundColor={true}
onPress={() => {
onPress();
}}
ref={ref}
/>
));
if (data && data.length > 0) {
return (
<Container>
<ButtonView>
<NextButton ref={reference} />
</ButtonView>
</Container>
);
}
const NextButton=React.forwardRef((props,ref)=>(
{
onPress();
}}
ref={ref}
/>
));
如果(数据和数据长度>0){
返回(
);
}
在主页和nextFocus函数上创建引用,以使“我的”按钮具有焦点
const ref = React.createRef();
const focusNext = () => {
ref.current.focus();
};
return (
<List
data={flowers}
onPress={addFlower}
goBack={navigationGoBack}
isFlowerList
reference={ref}
focusNext={focusNext}
/>
);
const ref=React.createRef();
const focusNext=()=>{
ref.current.focus();
};
返回(
);
但是ref总是未定义,并且在尝试提供焦点时崩溃。您能创建一个零食url吗?