๋ชจ๋ ์๋ ,
๋ช ๊ฐ์ง ์ฑ๋ฅ ๊ฐ์ ์์
์ ํ๋ ๋์ ๋ชฉ๋ก์์ rowHasChanged
๊ฐ ํธ์ถ๋์ง ์์๋ค๋ ๊ฒ์ ์์์ต๋๋ค. ์ด ๋ชฉ๋ก์ ๋ฌดํ ์คํฌ๋กค ๋ชฉ๋ก์
๋๋ค. ์ฆ, ๋์ ๋๋ฌํ๋ฉด ํ์ํ ๋ ๋ง์ ํญ๋ชฉ์ ๊ฐ์ ธ์จ ๋ค์ ๋ชฉ๋ก์ ๋คํํฉ๋๋ค.
DataSource์ ๋ด์ฉ์ ๋ณ๊ฒฝํ ๋๋ง๋ค ๋ชฉ๋ก์ ๋ชจ๋ ํญ๋ชฉ์ด ์
๋ฐ์ดํธ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ๋ชจ๋ ํ์ ๋ํด shouldComponentUpdate
๊ฐ ์์ง๋ง rowHasChanged
์์ ์ดํดํ ๋๋ก ์ด ํ์ ๋ค์ ๋ ๋๋งํ ํ์๊ฐ ์์ต๋๋ค.
๋ชฉ๋ก์ ํญ๋ชฉ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ๊ฐ๋จํ ์๋ฅผ ๋ง๋ค์์ต๋๋ค. https://gist.github.com/janmonschke/c9c84b6050683da0c64f
์ฐ๋ฆฌ๊ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ ์ผ์:
constructor() {
// (...)
this.ds = new ListView.DataSource({rowHasChanged: (r1, r2) => {
console.log('rowHasChanged');
return r1 !== r2;
}});
// (...)
}
onEndReached = () => {
// append data to the end
setData = [...setData, ...genRandomSet()];
this.setState({
dataSource: this.ds.cloneWithRows(setData)
});
console.log('onEndReached');
};
render() {
return (
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow}
onEndReached={this.onEndReached}
/>
);
}
๊ทธ๋ฌ๋ rowHasChanged
๋ ๊ธฐ๋ก๋์ง ์์ต๋๋ค.
์ด๋ป๊ฒ ๋ ์๋ชป๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ๊ณ ์์ต๋๊น? ListView์ ์ถ๊ฐํ๋ ๋ ์ข์ ๋ฐฉ๋ฒ์ด ์์ต๋๊น?
0.18.0
๋ฐ 0.19.0
์์ ๋์ผํ ๋์
janmonschke๋, ์ด ๋ฌธ์ ๋ฅผ ์ ๊ณ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค!
๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ(React Native)๋ ์๋ง ๋ค์ด๋ณด์ จ์ ํ ๋ฐ, ์ ๋ง ์ธ๊ธฐ๋ฅผ ์ป๊ณ ์์ผ๋ฉฐ ์ฌ์ค ์ฐ๋ฆฌ๋ ์ด๋ฅผ ๋๋ฌ์ผ ํ๋์ ์๋๋นํ๊ณ ์์ต๋๋ค. ์ ๋๋ก ๊ด๋ฆฌํ๊ธฐ์๋ ๋ฌธ์ ๊ฐ ๋๋ฌด ๋ง์ต๋๋ค.
react-native
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ StackOverflow ์ ๋ฌธ์ํ๊ฑฐ๋ ๋ ๋ง์ ์ค์๊ฐ ์ํธ ์์ฉ์ ์ํ๋ฉด Discord ์ ๋ฌธ์ํ์ญ์์ค. #react ๋ค์ดํฐ๋ธ ์ฑ๋์
๋๋ค.์ข์ต๋๋ค. http://stackoverflow.com/a/33871118์์ ์๋ฃจ์ ์ ์ฐพ์์ต๋๋ค.
๋ถ๋ช ํ ์ฌ๋ฐ๋ฅธ DataSource ์ธ์คํด์ค์์ ๋ณต์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.)
๋ฐ๋ผ์ ์์ ์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
setData = [...setData, ...genRandomSet()];
this.setState({
dataSource: this.state.dataSource.cloneWithRows(setData)
});
์ด๊ฒ์ ์ฝ๋๋ฒ ์ด์ค์ ์ฝ๊ฒ ์ค๋ฉฐ๋๋ ์ค๋ฅ์ฒ๋ผ ๋ณด์
๋๋ค. ๋ฌธ์์์ DataSource
์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ์ ๋ ๊ฐ์กฐํด์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค.
@janmonschke ๊ฐ์ฌํฉ๋๋ค! ๋์ํฉ๋๋ค. ๊ณ์ํด์ ๋ค์ ๋ ๋๋ง๋๋ ๋ง์ ๋ทฐ๊ฐ ์์๊ณ ์ ๊ทธ๋ฐ ์ผ์ด ์ผ์ด๋๊ณ rowHasChanged
ํจ์๊ฐ ํธ์ถ๋์ง ์๋์ง ์ ์ ์์์ต๋๋ค. ๐
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ข์ต๋๋ค. http://stackoverflow.com/a/33871118์์ ์๋ฃจ์ ์ ์ฐพ์์ต๋๋ค.
๋ถ๋ช ํ ์ฌ๋ฐ๋ฅธ DataSource ์ธ์คํด์ค์์ ๋ณต์ ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.)
๋ฐ๋ผ์ ์์ ์ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์์ผ ํฉ๋๋ค.
์ด๊ฒ์ ์ฝ๋๋ฒ ์ด์ค์ ์ฝ๊ฒ ์ค๋ฉฐ๋๋ ์ค๋ฅ์ฒ๋ผ ๋ณด์ ๋๋ค. ๋ฌธ์์์
DataSource
์ ์ฌ๋ฐ๋ฅธ ์ฌ์ฉ๋ฒ์ ๋ ๊ฐ์กฐํด์ผ ํ๋์ง ๊ถ๊ธํฉ๋๋ค.