Yerel olarak tepki verme veya tepki verme sırasında, bileşenin gizleme / gösterme veya ekleme / kaldırma yöntemi android veya iOS'ta olduğu gibi çalışmaz. Birçoğumuz benzer bir strateji olacağını düşünüyoruz
View.hide = true or parentView.addSubView(childView)
Ancak yerel çalışmalara tepki verme şekli tamamen farklıdır. Bu tür bir işlevsellik elde etmenin tek yolu, bileşeninizi DOM'nize dahil etmek veya DOM'dan kaldırmaktır.
Bu örnekte, düğme tıklamasına bağlı olarak metin görünümünün görünürlüğünü ayarlayacağım.

Bu görevin arkasındaki fikir, button click olayı gerçekleştiğinde başlangıç değeri false olarak ayarlanmış durum adı verilen bir durum değişkeni oluşturmaktır. Şimdi bu durum değişkenini bileşen oluşturulurken kullanacağız.
import renderIf from './renderIf'
class FetchSample extends Component {
constructor(){
super();
this.state ={
status:false
}
}
toggleStatus(){
this.setState({
status:!this.state.status
});
console.log('toggle button handler: '+ this.state.status);
}
render() {
return (
<View style={styles.container}>
{renderIf(this.state.status)(
<Text style={styles.welcome}>
I am dynamic text View
</Text>
)}
<TouchableHighlight onPress={()=>this.toggleStatus()}>
<Text>
touchme
</Text>
</TouchableHighlight>
</View>
);
}
}
bu snippet'te fark edilmesi gereken tek şey renderIf, aslında kendisine iletilen bileşeni, kendisine iletilen boole değerine göre döndürecek bir işlevdir.
renderIf(predicate)(element)
renderif.js
'use strict';
const isFunction = input => typeof input === 'function';
export default predicate => elemOrThunk =>
predicate ? (isFunction(elemOrThunk) ? elemOrThunk() : elemOrThunk) : null;