#1693๊ณผ ์ ์ฌํฉ๋๋ค. React Native 0.19.0์์ Chrome ๋๋ฒ๊น
์ ์ฌ์ฉํ๋ Touchable
๊ตฌ์ฑ ์์์ ๋ฌธ์ ๊ฐ ์๋ ๊ฒ ๊ฐ์ต๋๋ค.
Attempted to transition from state `RESPONDER_INACTIVE_PRESS_IN` to `RESPONDER_ACTIVE_LONG_PRESS_IN`, which is not supported.
This is most likely due to `Touchable.longPressDelayTimeout` not being cancelled.
stack:
reactConsoleError @ ExceptionsManager.js:76
console.error @ YellowBox.js:49
TouchableMixin._handleLongDelay @ Touchable.js:575
JSTimersExecution.callbacks.(anonymous function) @ JSTimers.js:47
JSTimersExecution.callTimer @ JSTimersExecution.js:69
JSTimersExecution.callTimers @ JSTimersExecution.js:92
__callFunction @ MessageQueue.js:183
(anonymous function) @ MessageQueue.js:87
guard @ MessageQueue.js:41
callFunctionReturnFlushedQueue @ MessageQueue.js:86
onmessage @ debuggerWorker.js:39
์ด ์ค๋ฅ๋ฅผ ์์ฑํ๋ ์ฝ๋๋ TouchHighlight ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ์ฌ ์๋ก ์์๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ๊ฐ์ ธ์จ ๊ฒ์ ๋๋ค.
class App extends Component {
constructor() {
super()
this.state = {
testText: ''+Math.random()
}
}
_updateTouch(e) {
this.setState({testText: ''+Math.random()})
}
render() {
return (
<View style={styles.container}>
<Text>
{this.state.testText}
</Text>
<TouchableHighlight onPress={this._updateTouch.bind(this)}>
<Image
style={width: 100, height: 100}
source={{uri: 'http://facebook.github.io/react/img/logo_og.png'}}
/>
</TouchableHighlight>
</View>
);
}
}
์ถ์ ์คํ ์ถ์ ์ ๋ณต์ฌํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ต๋๊น? Chrome ๊ฐ๋ฐ์ ๋๊ตฌ ์ฝ์์์ ๋ณต์ฌํ๊ณ ์์ต๋๋ค.
Hey Dyscrete, ์ด ๋ฌธ์ ๋ฅผ ์ ๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)๋ ์๋ง ๋ค์ด๋ณด์ จ์ ํ ๋ฐ, ์ ๋ง ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ผ๋ฉฐ ์ฌ์ค ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋๋ฌ์ผ ํ๋์ ์๋๋นํ๊ณ ์์ต๋๋ค. ์ ๋๋ก ๊ด๋ฆฌํ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ๋๋ฌด ๋ง์ต๋๋ค.
react-native
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ StackOverflow์ ๋ฌธ์ํ๊ฑฐ๋ ๋ ๋ง์ ์ค์๊ฐ ์ํธ ์์ฉ์ ์ํ๋ฉด Discord ์ ๋ฌธ์ํ์ญ์์ค. #react ๋ค์ดํฐ๋ธ ์ฑ๋์
๋๋ค.iPhone6(9.1)์์ ํ ์คํธํ ๋ ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ด ๋ฌธ์ ๋ #1693๊ณผ ์ด๋ป๊ฒ ๋ค๋ฆ ๋๊น? ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ๋ ๋์ผํ ๊ฒ ๊ฐ์ต๋๋ค. ๋ ์์ธํ ๋ด์ฉ์ด ์์ผ๋ฏ๋ก ๋ซ๊ณ ์ถ๊ฐ ์กฐ์ฌ๋ฅผ ๊ณ์ํ ์ ์์ต๋๊น?
+1
๋๋ ๋ํ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉฐ ์์ฃผ ๋ฐ์ํฉ๋๋ค. ๋ด๋น๊ฒ์ดํฐ
@askday ๋ก
๋์๊ฒ๋ ๊ฐ์ ์ค๋ฅ๊ฐ ์์ต๋๋ค.
๋ฐ์ 0.31
ํฌ๋กฌ ๋๋ฒ๊ทธ.
์ ์์ ์ธ ์ฌ์ฉ์๋ ๋ฌธ์ ๊ฐ ์์ต๋๋ค.
console.error: " RESPONDER_INACTIVE_PRESS_IN
์์ RESPONDER_ACTIVE_LONG_PRESS_IN
์ํ๋ก ์ ํ์ ์๋ํ์ง๋ง ์ง์๋์ง ์์ต๋๋ค. Touchable.longPressDelayTimeout
๊ฐ ์ทจ์๋์ง ์์๊ธฐ ๋๋ฌธ์ผ ๊ฐ๋ฅ์ฑ์ด ํฝ๋๋ค."
๊ฐ์ฒด.์ฝ์.์ค๋ฅ
YellowBox.js:60
์์ฑ์._handleLongDelay
Touchable.js:595
JSTimersExecution.callbacks.(์ต๋ช
index.ios.bundle?platform=ios&dev=true& minify =
Object.callTimer
JSTimersExecution.js:84
JSTimersExecution.js:119
Object.callTimers
JSTimersExecution.js:119
MessageQueue.__callFunction
MessageQueue.js:204
MessageQueue.js:95
+1
+1
+1
+1
:+1:
๐
+1
+1
+1
+1
+1
+1
+1
+1
+1
์ด ์ค๋ฅ๋ ๋ฐ์ํ์ง๋ง Android์์๋ง ๋ฐ์ํฉ๋๋ค. IOS๋ ์์๋๋ก ์๋ํฉ๋๋ค.
+1
+1
+1
+1
+1
+1
+1
+1 Android์์๋ง ๋์ผํ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง๋ง iOS๋ ์ ๋๋ก ์๋ํฉ๋๋ค.
+1 @binzailani3136 ๊ณผ ๋์ผ
+1
์ด ๋ฒ๊ทธ๊ฐ RN0.39์ ๊ฐ์ฅ ์ ๋ช ๋์ ๋ฌธ์ ์ค ํ๋๋ก ์ ์ ๋ ๊ฒ์ ์ถํํฉ๋๋ค.
+1
+1
+1
+1
+1
+1
+1
+1
์ฌ๋ฌ๋ถ, +1์ ๋์์ด ๋์ง ์์ต๋๋ค. ์ด๊ฒ์ #1693์ ์์ต๋๋ค.
+1
+1
+1
+1
+1
+1
๋ง์ ์ฌ๋๋ค์ด ํญ์ ์ด ๋ฌธ์ ๋ฅผ ๊ฐ๊ณ ์๋ ๊ฒ ๊ฐ๊ณ ์ด ๋ฌธ์ ๋ ์ข ๋ฃ๋์์ผ๋ฏ๋ก ์ฌ๊ธฐ์ ์ ๋ฌธ์ ๋ฅผ ๋ง๋ญ๋๋ค. #11989
+1
+1
@magrinj , ์ง๊ธ ๋ง RN 0.37์ ์ฌ์ฉ ์ค์ธ ๋๋ฅผ ํฌํจํ์ฌ ๋ง์ ์ฌ๋๋ค์ด ์ด ์ค๋ฅ๋ฅผ ๊ณ์ ๋ฐ์
@fungilation ์ด ํฐ์ผ์ด ์ด๋ ค ์๊ณ ๊ฐ์ ๋ฌธ์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ธฐ ๋๋ฌธ์ ์ ํฐ์ผ์ ์ฌ๋ ์ค์๋ฅผ ํ ๊ฒ ๊ฐ์ต๋๋ค. #1693
๋ณด๊ธฐ ์ถ๊ฐ ํ ์์ ๋จ
<TouchableNativeFeedback>
<View> // <= here
<Text style={css.item}>{rowData.title + rowData.id}</Text>
</View>
</TouchableNativeFeedback>
@Yadro , ์ถ๊ฐ View๋ฅผ ์ฝ์ ํ๋ฉด ์ฑ ์ธก์์์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๊น, ์๋๋ฉด RN์ด ๊ทธ๋ ๊ฒํ์ฌ ๋ด๋ถ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๊น?
ํ , ์ ์์ด ์ค๋ ฅ์ด ํํธ์์ง๋ง ์ถ๊ฐ ๋ณด๊ธฐ๋ฅผ ์ฝ์ ํ๋ฉด ์ด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
ํ์ธ. ์ถ๊ฐ ์กฐํ์์ ํจ๊ป ์ด ๋ฌธ์ ๊ฐ ๊ณ์ ๋ฐ์ํ๋ฉด ๋ค์ ๋ณด๊ณ ํ๊ฒ ์ต๋๋ค.
+1
์๊ฒฉ ๋๋ฒ๊น ์ ์์ ๋๋ง ์ด๊ฒ์ ์ป์ต๋๋ค. ์ด๊ฒ์ ์ ์์ ์ผ๋ก ๋ฐ์ํ์ง ์์ต๋๋ค. RN .41.2. ์๋์ฐ 10. ์๋๋ก์ด๋
+1
@ckwong90 , ์ฌ๊ธฐ์ ์ผ๋ถ๋ ์๊ฒฉ ๋๋ฒ๊น
์์๋ง ๋ํ๋ฉ๋๋ค.
RN .41.2. macOS ์์๋ผ 10.12.3
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง, Android 6.0, ์ต์ RN, ์๊ฒฉ ๋๋ฒ๊น
+1
+1
+1
Chrome์์ react-native-button
๋ฐ ๋๋ฒ๊ทธ ๋ชจ๋ธ์์ ์ด ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Button ๊ตฌ์ฑ ์์๋ฅผ View๋ก ๋ํํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
+1
์ด๋ฏธ View์์ ๊ตฌ์ฑ ์์๋ฅผ ๋ํํ์ง๋ง ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ๊ทธ ํ ๋ด ์ฑ์ ๋ชจ๋ TouchableHighlight์์ ์ด ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. ์ค์ ์์ ์ฑ ๋ฐ์ดํฐ๋ฅผ ์ง์์(์ผ์์ ์ผ๋ก?) ํด๊ฒฐํ์ต๋๋ค. Android, Emulator, Win10, RN 0.42.3์์ "Hot Reloading" ์์ด "Debug JS Remotely"๋ก ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
์ฌ๊ธฐ๋ ๋ง์ฐฌ๊ฐ์ง
+1
๋ด๋น๊ฒ์ดํฐ๋ฅผ ์ ํํ๋ฉด +1์ด ๋ฐ์ํฉ๋๋ค.
+1
๊ฐ์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค. XCode์์ ์ฑ์ ๋ค์ ๋น๋ํ๋ฉด ํด๊ฒฐ๋์์ต๋๋ค.
+1
+1
+1
+1
+1
+1
+1
+1
+1
+1
์ด์ ๋ํ ์ง์ ์ด ์์ต๋๊น?
์ด ๋ฌธ์ ๋ ์๊ฒฉ์ผ๋ก ๋๋ฒ๊ทธํ ๋ ๋ฐ์ํฉ๋๋ค.
๋๊ตฌ๋?!
3์ฃผ ๋์ ๊ฐ๋ฐํ ํ ๊ฐ์๊ธฐ ๋ค์ดํฐ๋ธ ๊ธฐ๋ฐ Fab ๊ตฌ์ฑ ์์๋ฅผ ์ฌ์ฉํ ๋ ์ด ๋ฌธ์ ๊ฐ ๋ํ๋ฉ๋๋ค. F8์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ์ ๋ฌธ์ ๊ฐ ์๊ณ ,
+1
+1
+1
+1
render() {
let {onNavigateToOfferScreen, navigation} = this.props;
let {dataSource} = this.state;
return (
<ListView style={styles.container} dataSource={dataSource} renderRow={offer => (
<TouchableHighlight onPress={() => onNavigateToOfferScreen(offer)}>
<View style={styles.row} elevation={2}>
<Text style={styles.businessName}>{offer.name}</Text>
</View>
</TouchableHighlight>
)}/>
);
}
+1
๋๊ฐ์ ๊ฒ
+1
+1
+1
+1
+1 ....์ด ์ค๋ฅ๋ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ ํ์ ๋ํ๋ฉ๋๋ค...
๋์ผํ ๋ฌธ์ ์ถ๊ฐ ๋ณด๊ธฐ๊ฐ ์๋ํ์ง ์์
+1
+1
์นด์ดํธ++
+1
+1 ์คํธ์ ๊ทธ๋งํ์ธ์. ์๋ณธ ๊ฒ์๋ฌผ์ด๋ ๊ฐ์ ํญ๋ชฉ์ด ๋ณด์ด๋ฉด ์์ง ์๊ฐ๋ฝ ๐๐ผ ๋๊ธ์ ๋จ๊ฒจ์ฃผ์ธ์.
@ ๊ณฐํก์ด ๐
+1
์ด๊ฒ์ ์๊ฒฉ ๋๋ฒ๊น ์์๋ง ๋ฐ์ํ๋ฉฐ ๋ค์์ ์ํํ์ฌ ์์๋ก ์์ ํ์ต๋๋ค.
์ฐธ๊ณ : ์ด๊ฒ์ ์ค์ ๋ก ์์ ํด๊ฒฐ์ฑ ์ ๋๋ค. ์ง๊ธ๋ ๊ฐ๋ ๋ฐ๋ณต์ ์ผ๋ก ๋น๋๋ค.
@Jarrio ๊ฐ์ฌํฉ๋๋ค
@lukemiles ์๊ฐ?
+1
+1
+1
@Jarrio ์ tmp ์๋ฃจ์ ์ ํ์ฌ ์๋ํฉ๋๋ค.
+1
+1
+1
rn 48 +1,
+1
48 + 1
์๊ฒฉ js ๋๋ฒ๊ทธ๊ฐ ํ์ฑํ๋ ๊ฒฝ์ฐ์๋ง ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค... ์ผ๋ฐ ๋ชจ๋์์๋ ์ ๋๋ก ์๋ํฉ๋๋ค.
rn 49.3+ 1
+1
+1
+1
+1
TouchableHighlight
์ TouchableOpacity
๋ก ๋ณ๊ฒฝํ๋ฉด ๋ฐ์ํ์ง ์์ต๋๋ค.
RN.50 +1
@Jarrio๋ ์ฌ์ ํ Android์์ ์ค๋ฅ๋ฅผ ๋ฐ๋ก ๋์ง๋๋ค.
+1 0.47
+1
+1์ ๋ฉ์ถฐ์ฃผ์ธ์!!!
์ด... ํ๋ฌ์ค 1, ๊ทธ๋ผ
+1
+1
0.48.3์ ๊ฒฝ์ฐ +1
0.51.0์ +1
+1 ๋ฉ์ง๋ค์, ์ฌ๋ํฉ๋๋ค. 0.50 ๋ฐ์
+1
+1
+1
๋ฐ์ ๋ค์ดํฐ๋ธ 0.51.0 ์ฌ์ฉ
Android์์ ๊ธฐ๊ธฐ ์๊ฐ์ ์๋์ผ๋ก ์ค์ ํ์ฌ ์ด ๋ฌธ์ ๋ฅผ '๊ณ ์ 'ํ์ต๋๋ค. ์ ์๊ฐ์ด ์ปดํจํฐ์ ์๊ฐ๊ณผ ๋์ผํ์ง ํ์ธํ๊ณ (๋ค์ ๋ถ ๋ณ๊ฒฝ์ ๋ชฉํ๋ก) ์ปดํจํฐ ์๊ฐ์ด ๋ค์ ๋ถ์ผ๋ก ๋ณ๊ฒฝ๋๋ ๋ฐ๋ก ๊ทธ ์๊ฐ์ ์๊ฐ ๋ณ๊ฒฝ์ ํ์ธํ์ญ์์ค.
+1
+1
+1
+1
+1
+1
๋์๊ฒ ํด๊ฒฐ์ฑ ์
+1
LibrariesComponentsTouchableTouchableHighlight.js์์ ๋์ฒด
touchableGetLongPressDelayMS: ํจ์() {
this.props.delayLongPress๋ฅผ ๋ฐํํฉ๋๋ค.
},
~์ ํจ๊ป
touchableGetLongPressDelayMS: ํจ์() {
this.props.delayLongPress === 0์ ๋ฐํํฉ๋๊น? 0 :
this.props.delayLongPress || 500;
},
๊ทธ๊ฒ์ ๋๋ฅผ ์ํด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
+1
+1
Android์์ ๋์ผํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ ๋
) ๋ด ํด๋ ์ ํ๊ฐ USB๋ฅผ ํตํด ๋ด PC์ ์ฐ๊ฒฐ๋์์ต๋๋ค.
b) ๋คํธ์ํฌ๋ฅผ ํตํ ์๊ฒฉ ๋๋ฒ๊น
์ ์ฌ์ฉํ์ต๋๋ค.
USB๋ฅผ ๋ถ๋ฆฌํ๋ฉด ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. ์ธ๊ณผ๊ด๊ณ๊ฐ ์๋์ง ์ฌ๋ถ๋ ์ ์ ์์ง๋ง.
ํธ์ง: ๋น๋๊ธฐ ์๊ฐ ์ด๊ณผ์ ๋ํ ์ถ๊ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ํ ๋ค์์ ํตํด PC ๋ฐ Android ์ฅ์น์ ํ์ฌ ์๊ฐ์ ํ์ธํ์ต๋๋ค.
adb shell date && date
.
5์ด์ ์ฐจ์ด๊ฐ ์์์ต๋๋ค. ์๊ฒฉ์ผ๋ก ๋๋ฒ๊น
ํ ๋ RN์ด ํ์ฌ ์๊ฐ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋ถ์ผ์น๊ฐ ์๋ค๊ณ ์ถ์ธกํ ์ ์์ต๋๋ค.
์ ํตํด
curl -s --head http://google.com | grep ^Date: | sed 's/Date: //g'
๋๋ ๋ด ๊ฒฝ์ฐ์ ๋ฒ์ธ์ ์ฐพ์๋๋ค. ๋ด ์๋๋ก์ด๋ ๊ธฐ๊ธฐ์ ์์คํ ์๊ฐ์ 5์ด ์ฐจ์ด์๋ค. Android ๊ธฐ๊ธฐ๋ฅผ ์ฌ๋ถํ ํ๋ฉด ๋ถ์ผ์น๊ฐ ์์ ๋์์ต๋๋ค.
๋ฐฉ๊ธ Android ๊ธฐ๊ธฐ์ Mac์์ adb shell date && date
์๊ฐ์ ํ์ธํ์ต๋๋ค. 2๋ถ ์ด์ ์ฐจ์ด๊ฐ ๋ฌ์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ Android ์ฅ์น์์ ์๋ ์๊ฐ ์ค์ ์ ํ์ฑํํ๊ณ ๋์ผํ ๋ช
๋ น์ ๋ค์ ์คํํ๋๋ฐ ์๊ฐ์ด ๋๊ธฐํ๋์์ง๋ง(Android ์ฅ์น ๋ฐ Mac) ํ์ค ์๊ฐ๋ ์ค์ ์ด ์๋์ด์์์๋ ํ์ค ์๊ฐ๋๋ ๋์ผํ์ง ์์์ต๋๋ค. ๊ทธ๋์ Android ๊ธฐ๊ธฐ์์ ์๋ ์๊ฐ๋ ์ค์ ์ ๋นํ์ฑํํ๊ณ ์๋์ผ๋ก ํด๋น ์๊ฐ๋๋ก ์ค์ ํ๋ฉด ์ค๋ฅ๊ฐ ์ฌ๋ผ์ก์ต๋๋ค.
+1
+1
Android ์ฅ์น์ ์๋ ์๊ฐ ์ค์ ๋ฐ ์ปดํจํฐ์ ์๋ ์๊ฐ ์ค์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ์ต๋๋ค.
Ubuntu์์ ๋ค์์ ์ํํ์ฌ ์์คํ ์๊ฐ์ ํ์ฌ ADB ์๊ฐ๊ณผ ๋๊ธฐํํ์ต๋๋ค.
sudo date +%T -s `adb shell date +%T`
+1
+1
๋ฐ๋ณต์ ์ธ +1 ๋๊ธ๋ก ์ธํด ์ ๊น๋๋ค. ์๋ฃจ์ ์ ์ค๋ ์ ์ @Larry-Liu2016 ์ฌ๊ธฐ ์ ๊ฒ์
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๋ณด๊ธฐ ์ถ๊ฐ ํ ์์ ๋จ