Skip to content

Instantly share code, notes, and snippets.

// src/App.tsx
import { StyleSheet, Text, View } from 'react-native';
import Hello1 from './Hello';
import Hello2 from './components/Hello';
export default function App() {
return (
<View style={styles.container}>
<Text>App</Text>
<Hello1 />
// src/App.tsx
import { StyleSheet, Text, View } from 'react-native';
import Hello1 from './Hello';
import Hello2 from './components/Hello';
export default function App() {
return (
<View style={styles.container}>
<Text>App</Text>
<Hello1 />
// src/App.tsx
import { StyleSheet, Text, View } from 'react-native';
import Hello1 from './Hello';
import Hello2 from './components/Hello';
export default function App() {
return (
<View style={styles.container}>
<Text>App</Text>
<Hello1 />
function insertBefore(parentInstance, child, beforeChild) {
var children = parentInstance._children;
var index = children.indexOf(child); // Move existing child or add new child?
if (index >= 0) {
children.splice(index, 1);
var beforeChildIndex = children.indexOf(beforeChild);
children.splice(beforeChildIndex, 0, child);
ReactNativePrivateInterface.UIManager.manageChildren( // 요기 !!
parentInstance._nativeTag, // containerID
onPress={()=>{
if(scrollTo !== undefined) {
Keyboard.addListener("keyboardDidShow", (event) => {
const platformOffset = Platform.OS === "ios" ? 95 : 165; // 플랫폼별로 오차 조절
scrollTo(getPosition() - (constants.height - event.endCoordinates.height - platformOffset));
Keyboard.removeAllListeners("keyboardDidShow");
});
}
GoComment(); // Comment 스크린으로 이동
}}
class PostPresenter extends Component {
render() {
return (
<PostPresenterInside
...
scrollTo={this.props.scrollTo}
...
/>
)
}
export default() => {
const scrollView = useRef();
const scrollTo = (position) => {
scrollView
.current
.scrollTo({x: 0, y: position, animated: true});
}
return (
<KeyboardAvoidingView
const PostPresenterInside = ({
...,
setY,
setOffset,
getPosition
}) => {
...
return (
<Container onLayout={event => {
const layout = event.nativeEvent.layout;
<Container onLayout={event => {
const layout = event.nativeEvent.layout;
// layout.y를 어딘가에 저장
}}>
...
<CommentInputContainer onLayout={event => {
const layout = event.nativeEvent.layout;
// layout.y를 어딘가에 저장
}}>
...
let selectedPhotos = []; // 전역 변수
/* 아래는 컴포넌트 함수 내부의 함수 */
const addPhoto = photo => {
selectedPhotos = selectedPhotos.concat(photo);
setSelectedPhoto(photo);
}
const deletePhoto = photo => {
selectedPhotos.splice(selectedPhotos.findIndex(p => p.id === photo.id), 1);